Perl 7 on ametatud

Täna toimuval virtuaalsel Perl arendajate konverentsil on ametlikult välja kuulutatud Perl 7 projekt, mis jätkab Perl 5 haru arengut ilma radikaalsete muutusteta. Perl 7 sarnaneb väljaandele Perl 5.32.0, välja arvatud erinevad vaike seadistused, mis vastavad paremini tänapäeva arendustavadele. Muul osas jääb Perl 7 samaks nagu Perl 5 ning säilitab ühilduvuse varasemate rakendustega.

Registreerimise märkimisväärne muutus signaalselt üleminekut uuele mudelile, mis laiendab Perl'i funktsionaalsust ilma tagurpidi ühilduvusi rikkumata.
Eeldatakse, et Perl 7 loomine aitab meelitada uusi arendajaid Perl'i kasutama ja käivitada oluliste uute omaduste lisamise protsessi, säilitades samal ajal ühilduvuse olemasolevate projektide koodibaasiga. Number 7 on valitud, kuna Perl 6 oli kasutatud keele arendamiseks, mis nüüd arendatakse käib eraldi nime all Raku. Perl 7 esimene väljaanne oodatakse järgmisel aastal. Perl 5.32 haru jääb viimaseks Perl 5 seerias ja selle arendamist plaanitakse toetada 5-10 aastat.

Perl 7 peamine muudatus on vaikimisi režiimi „strict“, mis tähendab, et muutuja deklareerimise, sümboolses osutite kasutamise ja allfunktsioonide määramise kontroll on rangem. „use strict” kasutamine on hea tava ja enamiku arendajate seas levinud. Samuti plaanitakse vaikimisi lisada hoiatuste käsitlemine (use warnings«).

) Perl 7-s soovitakse stabiliseerida ja vaikimisi lisada mõned juba olemasolevad eksperimentaalsed võimalused, nagu funktsioonide signeerimine („use feature ‘signatures'“), mis võimaldab funktsiooni määramisel määrata sissetulevad argumendid ja automatiseerida nende arvu kontrolli (saab kirjutada „sub foo ($left, $right) {“ asemel „sub foo { my($left, $right) = @_;“). Samuti plaanitakse vaikimisi lisada „isa“ operaatori tugi, et kontrollida, kas objekt on määratud klassi või temast kantud klassi eksemplar („if( $obj isa Package::Name )“, ning postderef operatsioonid „$sref->$*“ asemel „${ $sref }“, „$aref->@*“ asemel „@{ $aref }“ ja „$href->%{ … }“ asemel „%$href{ … }“.

Perl 7 vaikimisi välja lülitamiste kandidaadid on:

  • Kaudsed objekti kutsumise notatsioonid («no feature qw(indirect)«) — aegunud meetod objektide kutsumiseks, kus «->» asemel kasutatakse tühikut («method $object @param» asemel «$object->$method(@param)»). Näiteks peab alati olema «my $cgi = CGI->new» asemel «my $cgi = new CGI».
  • Paljad faili deskriptorid ilma muutuja deklareerimiseta («no bareword::filehandle«) — konstruktsioonide nagu «open FH, $file» kasutamine viib veani, tuleb kasutada «open my $fh, $file». Muudatus ei mõjuta standardseid faili deskriptoresid STDIN, STDOUT, STDERR, ARGV, ARGVOUT ja DATA.
  • Vale mitme tasandi massiivid ja häsid Perl 4 stiilis («no multidimensional«).
    Näiteks «$hash{1, 2}» näitamine toob kaasa vea, tuleb kasutada vahemassiivi, näiteks «$hash{join($;, 1, 2)}».
  • Prototüüpide deklareerimine Perl 4 stiilis (kasutada tuleb «use :prototype()»).

Kaugemates plaanides on vaikimisi plaanitud Unicode'i toe lisamine, mis vabastab arendajad vajadusest koodis kirjeldada "use utf8". Moodulite ja skriptide jaoks, kus uute vaikeseadete tõttu tekivad probleemid, on võimalik taastada Perl 5 käitumine, lisades koodi rea "use compat::perl5". Erilised seaded jäävad samuti alles ja neid saab muuta eraldi.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster