A Perl projekt vezetőtanácsa összefoglalta a Perl 5 ág további fejlesztésére és a Perl 7 ág létrehozására vonatkozó terveket. A megbeszélések során a vezetőtanács egyetértett abban, hogy nem szabad megsérteni a már megírt Perl 5 kódok kompatibilitását, kivéve, ha a kompatibilitás megsértése elengedhetetlen a sebezhetőségek megszüntetése érdekében. A tanács arra a következtetésre jutott, hogy a nyelvnek fejlődnie kell, és a lehető legintenzívebben kell népszerűsíteni az új lehetőségeket, egyszerűsítve ezzel az újításokhoz való hozzáférést és ösztönözve azok bevezetését.
A kezdeti szándékokkal ellentétben, amelyek a Perl 7 ágban a visszafelé kompatibilitás megsértését alapértelmezetté tették, az új terv fokozatosan kívánja átalakítani a Perl 5 ágat Perl 7-re anélkül, hogy megzavarná a meglévő kóddal való kompatibilitást. A Perl 7.0 kiadás konceptuálisan nem fog különbözni a következő Perl 5.xx ágtól.
A Perl 5 új kiadásainak fejlesztése a régi módon folytatódik - az ágba bekerülő új lehetőségek, amelyek nem kompatibilisek a régi kóddal, továbbra is csak a kódra való kifejezett utalás, a "use version" vagy "use feature feature" pragmák használatával kerülnek bevezetésre. Például a Perl 5.010 verzióban bemutatkozott az új "say" kulcsszó, de mivel a meglévő kódban használtak "say" nevű funkciót, az új kulcsszó támogatása csak a "use feature 'say'" pragma kifejezett használatával válik elérhetővé.
Az új szintaxis a nyelvben, amely a korábbi kiadásokban hibaüzenetet eredményezett, azonnal elérhetővé válik, anélkül, hogy különleges pragmák használatára lenne szükség. Például a Perl 5.36-ban egy egyszerűsített szintaxis lesz a listák több értékének egyidejű feldolgozására (‘foreach my ($key, $value) (%hash) {‘), amely azonnal elérhető, még a "use v5.36" pragma nélküli kódban is.
A Perl 5.36 jelenlegi állapotában, ha a "use v5.36" pragmát használják, 13 visszafelé inkompatibilis lehetőség lép életbe (‘say’, ‘state’, ‘current_sub’, ‘fc’, ‘lexical_subs’, ‘signatures’, ‘isa’, ‘bareword_filehandles’, ‘bitwise’, ‘evalbytes’, ‘postderef_qq’, ‘unicode_eval’ és ‘unicode_strings’), alapértelmezés szerint bekapcsolódnak a "use strict" és "use warnings" módok, valamint kikapcsolásra kerül a régi közvetett objektumkódolás (amikor a „->” helyett szóközt használnak) és a Perl 4 stílusú többszörös tömbök és hash-ek (‘$hash{1, 2}’).
Amikor elegendő változás felhalmozódik, a következő Perl 5.x kiadás helyett létrejön a Perl 7.0 verzió, amely a nyelv aktuális állapotát fogja tükrözni, de teljes mértékben visszafelé kompatibilis marad a Perl 5-tel. Az inkompatibilis változtatások és beállítások a kódban a "use v7" pragmának a kódba való explicit hozzáadását igénylik. Azaz a "use v7" pragmát tartalmazó kód "modern Perl"-ként értelmezhető, amelyben elérhetők a nyelv inkompatibilis módosításai, míg enélkül "konzervatív Perl"-nek számít, amely teljes mértékben visszafelé kompatibilis marad a korábbi kiadásokkal.
Forrás: opennet.ru
