Në konferencën virtuale për zhvilluesit e 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 versionin , përveç disa cilësimeve të tjera të parazgjedhura, që përshtaten më mirë me praktikat moderne të zhvillimit. Përndryshe, Perl 7 do të mbetet i njëjti Perl 5 dhe do të ruajë compatibilitetin me aplikacionet që janë zhvilluar më parë.
Një ndryshim i rëndësishëm i numrit të versionit do të shërbejë si një ndarës në kalimin në një model të ri për rritjen e funksionalitetit të gjuhës Perl pa shkelje të ndjeshme të compatibilitetit të pastër.
Pritet që krijimi i Perl 7 të ndihmojë në tërheqjen e zhvilluesve të rinj në përdorimin e Perl dhe të vendosë një proces për shtimin e mundësive të reja në gjuhë, duke ruajtur në të njëjtën kohë compatibilitetin me bazën e kodit të projekteve ekzistuese. Numri 7 është zgjedhur sepse Perl 6 është përdorur për zhvillimin e gjuhës, e cila tani nën një emër të veçantë Raku. Lëshimi i parë i Perl 7 pritet të ndodhë vitin e ardhshëm. Dega Perl 5.32 do të jetë e fundit në serinë Perl 5 dhe planifikohet të mbështetet për një periudhë nga 5 deri në 10 vjet.
Ndryshimi më i dukshëm në Perl 7 do të jetë përfshirja si parazgjedhje e modit ““, që nënkupton kontroll të rreptë mbi shpalljen e variablave, përdorimin e pointerëve simbolikë dhe caktimin e nënprogramit. Përdorimi i “use strict” është një normë e mirë dhe zbatohet nga shumica e zhvilluesve. Po ashtu, planifikohet të përfshihet si parazgjedhje përpunimi i paralajmërimeve (“«).
Në Perl 7 gjithashtu pritet të stabilizohen dhe të përfshihen si parazgjedhje disa mundësi eksperimentale që tashmë ekzistojnë, siç janë (“use feature ‘signatures'”), që lejojnë, kur përcaktohet një funksion, të përcaktohen argumentet hyrëse dhe automatizojnë verifikimin e numrit të tyre (do të jetë e mundur të shkruhet “sub foo ($left, $right) {” në vend të “sub foo { my($left, $right) = @_;”). Plani është që të përfshihet si parazgjedhje dhe mbështetje për operatorin “isa” për të verifikuar nëse objekti është një instancë e klasës së caktuar ose e një klase të derivuar prej saj (“if( $obj isa Package::Name )”, si dhe operacionet e dereferencimit pas postfixit (postderef) “$sref->$*” në vend të “${ $sref }”, “$aref->@*” në vend të “@{ $aref }” dhe “$href->%{ … }” në vend të “%$href{ … }”.
Kandidatë për të çaktivizuar në mënyrë të paracaktuar në Perl 7 janë:
- Sintaksa 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».
- Deshifruesit e dosjeve pa shpallje të variablave (««) — përdorimi i konstruktimeve si «open FH, $file» do të sjellë një gabim, duhet të përdoret «open my $fh, $file». Ky ndryshim nuk do të preket standardet e deshifruesve të dosjeve STDIN, STDOUT, STDERR, ARGV, ARGVOUT dhe DATA.
- Marrëdhënie fiktive shumë-dimensionale dhe hesh në stilin Perl 4 (««).
Për shembull, njoftimi «$hash{1, 2}» do të sjellë një gabim, duhet të përdoret një array i ndërmjetëm, si «$hash{join($;, 1, 2)}». - Shpallja e prototipave në stilin Perl 4 (duhet të përdoret «use :prototype()»).
Në planet më të largëta parazikohet të përfshihet mbështetje për Unicode, e cila do të çlirojë zhvilluesit nga nevoja për të specifikuar «use utf8» në kod. Për modulet dhe skriptet, të cilat do të hasin probleme me cilësimet e reja të paracaktuara, është parashikuar mundësia e kthimit në sjelljen e Perl 5 duke shtuar në kod linjën «use compat::perl5». Cilësimet e veçanta gjithashtu do të mbahen dhe mund të ndryshohen veçmas.
Burimi: opennet.ru
