Снощи на конференцията Perl и Raku в облака, Сойер X обяви промяна на основната версия на Perl от 5 на 7. Работата вече е в ход, новата версия ще бъде пусната до една година. Не трябва да очаквате много промени, накратко: Perl 7 си остава същият Perl 5.32 с модерни настройки по подразбиране. Вече не е необходимо изрично да включвате функциите, които вече използвате, те ще бъдат активирани за вас!
Какво ще бъде включено?
Все още няма пълен списък, но строг и предупредителен със сигурност! В 7-то издание подписите най-вероятно ще останат експериментални, те също няма да имат време да активират utf8.
Какво ще бъде деактивирано?
- Непряко извикване на метод:
{;
пакет Foo;sub new { благослови {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормално обаждане
my $foo = Foo->new();
# Непряко повикване
бар $foo 42; - Празни думи (голи думи) като идентификатори на дескриптори (с изключение на стандартните (STDIN, STDOUT, STDERR))
- Псевдо многоизмерни хешове в стила на Perl 4.
# примера са взети от perldoc perlvar
$foo{$x,$y,$z}
# всъщност означава $foo{join($;, $x, $y, $z)} - Стари прототипи в стил Perl 4. Сега трябва да пишете само така:
sub foo :prototype($$) ($left, $right) {
връщане $наляво + $надясно;
}Първо, прототип, който засяга компилирането на извиквания, и след това подписи, които поставят аргументи в подходящите променливи по време на изпълнение.
Въпреки това все още ще има възможност да върнете всичко обратно в насипно състояние:
използвайте compat::perl5;
Или един по един.
Perl 5.32 преминава към дългосрочна поддръжка за 5 или повече години.
Разширено съобщение от Brian D Foy: https://www.perl.com/article/announcing-perl-7/
TL;DR версия от него: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Източник: linux.org.ru