Perl 7 teatas

Tänasel Perli keelearendajate virtuaalkonverentsil teatas Perl 7 projekt, mis jätkab sujuvalt Perl 5 haru arendamist ilma radikaalseid muudatusi tegemata. Perl 7 on sarnane väljalase Perl 5.32.0, välja arvatud muud vaikesätted, mis on tänapäevaste arendustavadega paremini kooskõlas. Vastasel juhul jääb Perl 7 samaks kui Perl 5 ja ühildub varem arendatud rakendustega.

Versiooninumbri oluline muudatus toimib omamoodi eraldajana üleminekul uuele mudelile Perli keele funktsionaalsuse suurendamiseks ilma tagasiühilduvuse märgatava rikkumiseta.
Eeldatakse, et Perl 7 väljalase aitab Perli uusi arendajaid meelitada ja aitab sujuvamaks muuta oluliste uute funktsioonide lisamise protsessi, säilitades samal ajal ühilduvuse olemasolevate projektide koodibaasiga. Number 7 valiti seetõttu, et praeguse keele arendamiseks kasutati Perl 6 areneb eraldi nime all Raku. Perl 7 esimest väljalaset on oodata järgmisel aastal. Perl 5.32 haru on Perl 5 seeria viimane ja seda plaanitakse toetada 5–10 aastat.

Kõige märkimisväärsem muudatus Perl 7-s on ""range“, mis eeldab muutujate deklaratsioonide ranget kontrollimist, sümboolsete osutite kasutamist ja alamprogrammide määramist. "Kasuta ranget" kasutamine on hea vorm ja seda kasutab enamik arendajaid. Samamoodi kavatsevad nad vaikimisi lubada hoiatuste töötlemise (“kasutada hoiatusi").

Perl 7 loodab ka stabiliseerida ja vaikimisi lubada mõningaid juba olemasolevaid eksperimentaalseid funktsioone, nagu funktsiooni allkirjad (“kasuta funktsiooni 'signatuure'”), mis võimaldavad funktsiooni defineerimisel määrata sissetulevad argumendid ja automatiseerida nende arvu kontrolli (võid kirjutada “sub foo ($left, $right) {” asemel “sub foo {” minu($vasak, $parem) ) = @_;"). Nad kavatsevad vaikimisi lisada tuge operaatorile "isa" kontrollimaks, kas objekt on määratud klassi eksemplar või sellest tuletatud klass ("if( $obj isa Package::Name)", samuti postfixi viitamise eemaldamine toimingud (postderef) "$ sref->$*" "${ $sref }" asemel", "$aref->@*" "@{ $aref }" asemel ja "$href->%{ ... }" asemel "%$href{ ... }"

Perl 7 vaikimisi keelamise pretendendid on järgmised:

  • Kaudse objekti kutsumise tähistus ("qw funktsiooni pole (kaudne)") on pärandviis objektide kutsumiseks, kasutades "->" asemel tühikut ("$object->$method(@param)" asemel "meetod $object @param"). Näiteks "minu $cgi = uus CGI" asemel kasutaksite alati "minu $cgi = CGI->uus".
  • Tühjad failideskriptorid ilma muutujate deklaratsioonita ("ei paljasõna::filehandle") - selliste konstruktsioonide kasutamine nagu "ava FH, $ fail" toob kaasa vea, peate kasutama käsku "ava minu $fh, $ fail". Muudatus ei mõjuta standardseid failideskriptoreid STDIN, STDOUT, STDERR, ARGV, ARGVOUT ja DATA.
  • Perl 4 stiilis näiv mitmemõõtmelised massiivid ja räsid ("ei ole mitmemõõtmeline").
    Näiteks "$hash{1, 2}" määramine toob kaasa vea; peate kasutama vahepealset massiivi, näiteks "$hash{join($;, 1, 2)}".

  • Prototüüpide deklareerimine Perl 4 stiilis (peate kasutama "use :prototype()").

Kaugemate plaanide puhul eeldavad nad vaikimisi Unicode'i toe lubamist, mis säästab arendajaid koodis "kasuta utf8" määramisest. Moodulite ja skriptide puhul, millel on probleeme uute vaikeseadetega, on võimalik naasta Perl 5 käitumisele, lisades koodile rea "use compat::perl5". Samuti salvestatakse individuaalsed seaded ja neid saab eraldi muuta.

Allikas: opennet.ru

Lisa kommentaar