Perl projekti juhtkond tegi kokkuvõtte Perl 5 haru edasise arendamise ja Perl 7 haru loomise plaanidest. Arutelude käigus nõustus juhtkond, et ehtsuse rikkumine olemasoleva Perl 5 koodiga ei ole lubatud, välja arvatud juhtudel, mil seda on vaja haavatavuste kõrvaldamiseks. Samuti jõuti järeldusele, et keelt tuleks edasi arendada, suurendades samal ajal uute võimaluste propageerimist ning lihtsustades juurdepääsu uutele uuendustele ja nende rakendamise edendamist.
Erinevalt algsetest kavatsustest, mis lubasid Perl 7 harusse sisse viia vaikimisi tagurpidi ühilduvuse rikkumist, tähendab uus plaan Perl 5 haru järkjärgulist muutmist Perl 7-ks ilma olemasoleva koodiga ühilduvust rikkumata. Perl 7.0 väljaanne ei eristu kontseptuaalselt järgmise Perl 5.xx haru väljaandest.
Perl 5 uute väljaannete arendamine jätkub senisel viisil — uued funktsionaalsused, mis ei ole ühilduvad vana koodiga, lisatakse nagu varem ainult siis, kui koodis on selgelt määratud pragma «use versioon» või «use feature funktsioon». Näiteks versioonis Perl 5.010 tutvustati uut võtmesõna «say», kuid kuna olemasolevas koodis võidi kasutada funksioone nimega «say», siis uut võtmesõna toetati vaid pragma «use feature 'say'» selges määramises.
Keele uue süntaksi, mis varasemates väljaannetes tõi esile vea, saab kohe kasutada ilma spetsiaalsete pragma määramata. Näiteks Perl 5.36-s ilmub lihtsustatud süntaks mitme väärtuse nimekirjast korraga töötlemiseks («foreach my ($key, $value) (%hash) {«), mis on kohe kergesti kasutatav, ka koodis ilma pragma «use v5.36» kasutamata.
Praeguses versioonis Perl 5.36 aktiveeritakse pragma „use v5.36“ kasutamisel 13 kokkusobimatut funktsiooni (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ ja ‘unicode_strings’), vaikimisi aktiveeritakse režiimid „use strict“ ja „use warnings“ ning saadakse toetuse lõpetamine vananenud kaudse objekti kutsumise süntaksiga (kus „->“ asemel on tühik) ja Perl 4 stiilis mitmemõõtmeliste massiivide ja hashide puhul („$hash{1, 2}“).
Kui muudatusi on piisavalt palju, siis järgmise Perl 5.x väljaande asemel luuakse Perl 7.0 versioon, mis kujutab endast teatud hetkeseisu, kuid jääb täielikult tagasiühilduvaks Perl 5-ga. Kokkuleppimata muudatuste ja seadistuste lubamiseks on vajalik pragma „use v7“ selge lisamine koodi. Seega on koodi, kus on pragma „use v7“, võimalik tõlgendada kui „kaasaegne Perl“, kus on saadaval kokkusobimatud keele muudatused, ja ilma selleta - „konservatiivne Perl“, mis jääb täielikult tagasiühilduvaks varasemate väljaannetega.
Allikas: opennet.ru
