Na dnešní virtuální konferenci vývojářů jazyka Perl projekt Perl 7, který plynule naváže na vývoj větve Perl 5 bez radikálních změn. Perl 7 bude obdobný verzi , s výjimkou jiných výchozích nastavení, která lépe odpovídají moderní praxi vývoje. Jinak zůstane Perl 7 stejný jako Perl 5 a zachová kompatibilitu s dříve vyvinutými aplikacemi.
Významná změna čísla verze se stane jakýmsi oddělovačem přechodu na nový model zvyšování funkčnosti jazyka Perl bez výrazného narušení zpětné kompatibility.
Předpokládá se, že vytvoření Perl 7 pomůže přilákat nové vývojáře k používání Perlu a usnadní proces přidávání významných nových funkcí do jazyka, zatímco se zachová kompatibilita s kódem existujících projektů. Číslo 7 bylo zvoleno, protože Perl 6 byl použit při vývoji jazyka, který nyní je pod jiným názvem Raku. První vydání Perl 7 se očekává v příštím roce. Větev Perl 5.32 se stane poslední v sérii Perl 5 a plánuje se její podpora po dobu 5 až 10 let.
Nejvýraznější změnou v Perl 7 bude zahrnutí výchozího režimu „“, který zahrnuje přísnou kontrolu deklarace proměnných, použití symbolických ukazatelů a přiřazení podprogramům. Použití „use strict“ je dobrým tonem a používá ho většina vývojářů. Podobně se plánuje výchozí zahrnutí zpracování varování („«).
V Perl 7 se také počítá s tím, že budou stabilizovány a výchozí způsobem zahrnuty některé již existující experimentální funkce, jako například („use feature ‘signatures'“), které umožňují při definici funkce specifikovat vstupní argumenty a automatizovat kontrolu jejich počtu (bude možné napsat „sub foo ($left, $right) {“ místo „sub foo { my($left, $right) = @_ ;“). Také se plánuje výchozí podpora operátoru „isa“ pro ověřování toho, zda je objekt instancí zadané třídy nebo třídy odvozené od ní („if( $obj isa Package::Name )“, a také operace postfixního dereferencování (postderef) „$sref->$*“ místo „${ $sref }“, „$aref->@*“ místo „@{ $aref }“ a „$href->%{ … }“ místo „%$href{ … }“.
Kandidáty na vypnutí výchozího režimu v Perl 7 jsou:
- Nepřímá notace volání objektů („«) — zastaralý způsob volání objektů, kde se používá mezera místo „->“ („method $object @param“ místo „$object->method(@param)“). Například místo „my $cgi = new CGI“ bude vždy nutné používat „my $cgi = CGI->new“.
- Holé popisovače souborů bez deklarace proměnných („„) — použití konstrukcí jako „open FH, $file“ povede k chybě, musí se použít „open my $fh, $file“. Změna se nebude dotýkat standardních popisovačů souborů STDIN, STDOUT, STDERR, ARGV, ARGVOUT a DATA.
- Fiktivní vícerozměrné pole a hashe ve stylu Perl 4 („«).
Například uvádění „$hash{1, 2}“ povede k chybě, musí se použít mezilehlé pole, například „$hash{join($;, 1, 2)}“. - Deklarace prototypů ve stylu Perl 4 (musí se použít „use :prototype()“).
V dlouhodobějších plánech se standardně předpokládá zahrnutí podpory Unicode, což zbaví vývojáře nutnosti uvádět „use utf8“ v kódu. Pro moduly a skripty, kde vzniknou problémy s novými standardními nastaveními, je k dispozici možnost vrátit chování Perl 5 přidáním řádku „use compat::perl5“ do kódu. Některá nastavení budou také uložena a bude možné je měnit jednotlivě.
Zdroj: opennet.ru
