Včera večer na „Perl and Raku Conference in the Cloud“ Sawyer X oznámil přechod na hlavní verzi Perl z 5 na 7. Práce již probíhají, nová verze vyjde během roku. Velkých změn se nečeká, zkrátka: Perl 7 je stále ten samý Perl 5.32 s moderními výchozími nastaveními. Už nemusíte explicitně zapínat funkce, které již používáte, ty budou aktivovány za vás!
Co bude zahrnuto?
Úplný seznam zatím neexistuje, ale strict a warnings určitě! V 7. vydání zůstanou signatury pravděpodobně experimentální, UTF-8 také nestihnou aktivovat.
Co bude vypnuto?
- Nepřímé volání metod:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Prázdná slova (barewords) jako identifikátory deskriptorů (s výjimkou standardních (STDIN, STDOUT, STDERR))
- Pseudo vícerozměrné hash tabulky ve stylu Perl 4.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Staré prototypy ve stylu Perl 4. Nyní musí být psáno pouze takto:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Nejprve prototyp ovlivňující kompilaci volání, a poté signatury, které umístí argumenty do odpovídajících proměnných během běhu.
Nicméně, bude i nadále možnost vrátit všechno zpět hromadně:
use compat::perl5;
Nebo po jednom.
Perl 5.32 přechází do režimu dlouhé podpory na období 5 let.
Podrobný oznámení od Briana D Foy: https://www.perl.com/article/announcing-perl-7/
TL;DR verze od něj samotného: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Zdroj: linux.org.ru
