Ankandi Perl 7

Në konferencën virtuale për zhvilluesit e gjuhës Perl që po zhvillohet sot është njoftuar 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 Perl 5.32.0, 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 po zhvillohet 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 “strict“, 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 (“use warnings«).

Në Perl 7 gjithashtu pritet të stabilizohen dhe të përfshihen si parazgjedhje disa mundësi eksperimentale që tashmë ekzistojnë, siç janë nënshkrimet e funksioneve (“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 («no feature qw(indirect)«) ë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 («no bareword::filehandle«) — 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 («no multidimensional«).
    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

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster