A ma lező virtuális Perl fejlesztői konferencián a Perl 7 projektet, amely zökkenőmentesen folytatja a Perl 5 ágazat fejlődését anélkül, hogy radikális változtatásokat eszközölne. A Perl 7 hasonló lesz a kiadásához, , kivéve a más alapértelmezett beállításokat, amelyek jobban megfelelnek a modern fejlesztési gyakorlatnak. Egyébként a Perl 7 ugyanaz a Perl 5 marad, és megőrzi a korábban kifejlesztett alkalmazásokkal való kompatibilitást.
A jelentős verziószám-változás egyfajta határt jelent a funkciók bővítésének új modelljéhez a Perl nyelvben, anélkül, hogy érzékelhetően megsértené a visszafelé kompatibilitást.
A Perl 7 létrehozásától azt várják, hogy új fejlesztőket vonz a Perl használatához, és elősegíti a jelentős új lehetőségek nyelvbe való integrálását, miközben megőrzi a meglévő projektek kódalapjával való kompatibilitást. A 7-es szám azért lett választva, mert a Perl 6-ot használták a nyelv fejlesztésénél, amely most külön néven Raku fut. Az első Perl 7 kiadására jövőre számítanak. A Perl 5.32 ág lesz az utolsó a Perl 5 sorozatban, amelyet 5-10 évig terveznek támogatni.
A legszembetűnőbb változás a Perl 7-ben az alapértelmezett "" üzemmód beillesztése lesz, amely szigorú ellenőrzést feltételez a változók deklarálásánál, a szimbolikus mutatók használatánál és a szubprogramok hozzárendelésénél. A "use strict" használata jó modor, és a fejlesztők többsége alkalmazza. Hasonlóképpen az alapértelmezett beállítások közé tervezik a figyelmeztetések kezelését is ("«).
A Perl 7-ben azt is tervezik, hogy stabilizálják és alapértelmezetté tegyék néhány már meglévő kísérleti funkciót, mint például a ("use feature 'signatures'"), amelyek lehetővé teszik a bemeneti argumentumok meghatározását a függvény definíciójánál, és automatizálják azok számának ellenőrzését (így lehetőség lesz az "sub foo ($left, $right) {" írására az "sub foo { my($left, $right) = @_;" helyett). Az alapértelmezett beállítások közé tartozik a "isa" operátor támogatása is, amely ellenőrzi, hogy az objektum egy megadott osztály példánya vagy annak származtatott osztálya-e ("if( $obj isa Package::Name )", valamint a postfix dereferálás műveletei " $sref->$*" az " ${ $sref }" helyett, " $aref->@*" az " @{ $aref }" helyett és " $href->%{ ... }" az "%$href{ ... }" helyett.
A Perl 7 alapértelmezett kikapcsolására pályázó funkciók:
- Az objektumok közvetett hívásának szintaxisa ("«) — elavult objektumok hívási módja, ahol a «->» helyett szóközt használunk («method $object @param» helyett «$object->$method(@param)»). Például, a «my $cgi = new CGI» helyett mindig ezt kell használni: «my $cgi = CGI->new».
- Üres fájlkezelők változók deklarálása nélkül (««) — az olyan kifejezések használata, mint «open FH, $file» hibához vezet, használni kell «open my $fh, $file»-t. A változtatás nem érinti az alapértelmezett fájlkezelőket STDIN, STDOUT, STDERR, ARGV, ARGVOUT és DATA.
- Fiktív többrétegű tömbök és hashtáblák Perl 4 stílusban (««).
Például, a «$hash{1, 2}» használata hibához vezet, köztes tömböt kell használni, például: «$hash{join($;, 1, 2)}». - Prototípusok deklarálása Perl 4 stílusban (használjunk «use :prototype()»).
A távoli tervek szerint alapértelmezés szerint támogatni fogják az Unicode-ot, ami megszabadítja a fejlesztőket attól, hogy a kódjukban meg kell hivatkozniuk a «use utf8»-at. A modulok és szkriptek esetében, ahol problémák merülnek fel az új alapértelmezésekkel, lehetőség van a Perl 5 viselkedésének visszaállítására a kódba beillesztett «use compat::perl5» sorozat hozzáadásával. Az egyedi beállítások is megmaradnak, és külön-külön módosíthatók lesznek.
Forrás: opennet.ru
