Në konferencën virtuale të zhvilluesve të gjuhës Perl që po zhvillohet sot projekti Perl 7, i cili do të vazhdojë zhvillimin e degës Perl 5 pa bërë ndryshime radikale. Perl 7 do të jetë i ngjashëm me lëshimin , me përjashtim të konfigurimeve të reja të paracaktuara, më të përgjegjshme ndaj praktikave moderne të zhvillimit. Përsa i përket të tjerave, Perl 7 do të mbetet i njëjti Perl 5 dhe do të ruajë përputhshmërinë me aplikacionet e zhvilluara më parë.
Një ndryshim i dukshëm i numrit të versionit do të shërbejë si një ndarës për kalimin në një model të ri të rritjes së funksionalitetit të gjuhës Perl pa shkaktuar shqetësime të ndjeshme mbi përputhshmërinë e prapambetur.
Pritet që krijimi i Perl 7 do të ndihmojë në tërheqjen e zhvilluesve të rinj në përdorimin e Perl dhe të rregullojë procesin e shtimit të mundësive të reja të mëdha në gjuhë, duke ruajtur përputhshmërinë me bazën e kodit të projekteve ekzistuese. Numri 7 është zgjedhur pasi Perl 6 u përdor gjatë zhvillimit të gjuhës, e cila tani nën një emër të veçantë Raku. Lëshimi i parë i Perl 7 pritet vitin e ardhshëm. Dega Perl 5.32 do të jetë e fundit në serinë Perl 5 dhe është planifikuar të mbështetet nga 5 deri në 10 vjet.
Ndryshimi më i dukshëm në Perl 7 do të jetë përfshirja në mënyrë standarde e modit "" duke nënkuptuar verifikimin e rreptë të deklaratave të variablave, përdorimin e treguesve simbolikë dhe caktimin e nënprogrameve. Përdorimi i "use strict" është një normë e mirë dhe aplikohet nga shumica e zhvilluesve. Njëjtë, në mënyrë standarde planifikohet të përfshihet trajtimi i paralajmërimeve ("«).
Në Perl 7 gjithashtu pritet të stabilizojnë dhe të përfshijnë automatikisht disa mundësi eksperimentale ekzistuese, siç janë "), duke lejuar që gjatë përcaktimit të funksionit të definihen argumentet hyrëse dhe të automatizohet kontrolli i numrit të tyre (do të jetë e mundur të shkruhet "sub foo ($left, $right) {" në vend të "sub foo { my($left, $right) = @_;" ). Planifikohet gjithashtu që të përfshihet mbështetje e operatorit "isa" për të kontrolluar nëse një objekt është një instancë e klasës së specifikuar ose e një klase që derivon prej saj ("if( $obj isa Package::Name )", si dhe operacioneve për de-referencimin post (postderef) "$sref->$*" në vend të "${ $sref }", "$aref->@*" në vend të "@{ $aref }" dhe "$href->%{ ... }" në vend të "%$href{ ... }".
Pretendentët për çaktivizimin automatik në Perl 7 janë:
- Nota indirekte e thirrjes së objekteve ("") është një mënyrë e vjetruar për thirrjen e objekteve, ku në vend të "->" përdoret hapësira ("method $object @param" në vend të "$object->$method(@param)"). Për shembull, në vend të "my $cgi = new CGI" do të duhet gjithmonë të përdoret "my $cgi = CGI->new".
- Descriptorët e skedarëve të zbrazët pa deklarata variablash ("") — përdorimi i strukturave si "open FH, $file" do të shkaktojë një gabim, duhet përdorur "open my $fh, $file". Ky ndryshim nuk do të prekë descriptorët standardë të skedarëve STDIN, STDOUT, STDERR, ARGV, ARGVOUT dhe DATA.
- Mikro-matrica dhe heshë në stilin Perl 4 ("«).
Për shembull, specifikimi "$hash{1, 2}" do të shkaktojë një gabim, duhet përdorur një matricë ndërmjetëse, për shembull "$hash{join($;, 1, 2)}". - Deklarimi i prototipeve në stilin Perl 4 (duhet të përdoret "use :prototype()").
Në planet më të largëta, normalisht planifikohet të mundësohet mbështetje për Unicode, e cila do të shpëtojë zhvilluesit nga nevoja për të specifikuar "use utf8" në kod. Për modulat dhe skenaret që do të hasin probleme me parazitë të rinj standard, është parashikuar mundësia që të rikthehet sjellja e Perl 5 përmes shtimit të një rreshti në kod "use compat::perl5". Cilësimet e veçanta do të ruajnë gjithashtu dhe ato mund të ndryshohen veçmas.
Burimi: opennet.ru
