Upravno vijeće projekta Perl iznijelo je planove za daljnji razvoj ogranka Perl 5 i stvaranje ogranka Perl 7. Tijekom rasprava, Upravno vijeće se složilo da nije prihvatljivo prekidati kompatibilnost s kodom koji je već napisan za Perl 5, osim u slučaju kvara kompatibilnost je neophodna za ispravljanje ranjivosti. Vijeće je također zaključilo da bi se jezik trebao razvijati i nove značajke treba intenzivnije promicati, istovremeno olakšavajući pristup novonastalim inovacijama i potičući usvajanje.
Za razliku od izvornih namjera da se dopusti da promjene koje prekidaju kompatibilnost sa prethodnim verzijama budu uključene prema zadanim postavkama u granu Perl 7, novi plan je postupni prijelaz grane Perl 5 u Perl 7 bez narušavanja kompatibilnosti sa starim verzijama s postojećim kodom. Perl 7.0 izdanje se konceptualno neće razlikovati od sljedeće Perl 5.xx grane.
Razvoj novih izdanja Perla 5 nastavit će se kao i prije - nove značajke dodane grani koje nisu kompatibilne sa starim kodom bit će, kao i prije, uključene samo ako je pragma "koristi verziju" ili "koristi značajku značajke" izričito navedena u kodu. Na primjer, Perl 5.010 uveo je novu ključnu riječ "say", ali budući da postojeći kod može koristiti funkcije pod nazivom "say", podrška za novu ključnu riječ bila je omogućena samo eksplicitnim navođenjem pragme "koristi značajku 'say'".
Nova sintaksa dodana jeziku, koja je obrađena u prethodnim izdanjima dovela do pogreške, postaje odmah dostupna bez potrebe za specificiranjem posebnih pragmi. Na primjer, Perl 5.36 uvest će pojednostavljenu sintaksu za obradu više vrijednosti popisa odjednom ("foreach my ($key, $value) (%hash) {") koja će biti odmah dostupna, čak i u kodu bez "use v5.36” pragma.
U svom trenutnom obliku, Perl 5.36 koristi pragmu "use v5.36" za omogućavanje 13 značajki koje narušavaju interoperabilnost ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' i 'unicode_strings'), omogućite načine rada "use strict" i "use warnings" prema zadanim postavkama i onemogućite podršku za naslijeđenu neizravnu notaciju za pozivanje objekata (kada umjesto “- >” koristi razmak) i višedimenzionalne nizove i hashove u stilu Perl 4 ("$hash{1, 2}").
Kada se nakupi dovoljno promjena, umjesto sljedećeg izdanja Perla 5.x, generirat će se verzija Perla 7.0, koja će postati neka vrsta snimke stanja, ali će ostati potpuno kompatibilna s prethodnim verzijama Perla 5. Za omogućavanje promjena i postavki koji prekidaju kompatibilnost, morat ćete izričito dodati pragmu "use v7" kodu. . Oni. kod s pragmom "use v7" može se tretirati kao "moderni Perl", u kojem su dostupne jezične promjene koje narušavaju kompatibilnost, a bez - "konzervativni Perl", koji će ostati potpuno kompatibilan unatrag s prošlim izdanjima.
Izvor: opennet.ru
