Вчера вечерта на „Perl and Raku Conference in the Cloud“, Sawyer X обяви прехода на основната версия на Perl от 5 на 7. Вече се работи, новата версия ще излезе в рамките на година. Не се очаква значителен брой промени, ако трябва да обобщим: Perl 7 е същият Perl 5.32 с модерни настройки по подразбиране. Вече не е нужно изрично да включвате функции, които вече използвате, те ще бъдат активирани за вас!
Какво ще включат?
Пълен списък все още няма, но strict и warnings със сигурност ще бъдат налични! В 7-ия релиз, сигнатурите вероятно ще останат експериментални, utf8 също няма да бъде включен навреме.
Какво ще бъде изключено?
- Непреки извиквания на методи:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Празни думи (barewords) като идентификатори на дескриптори (с изключение на стандартните (STDIN, STDOUT, STDERR))
- Псевдо многомерни хешове в стил Perl 4.
# примеры взяты из perldoc perlvar
$foo{x,y,z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Старите прототипи в стил Perl 4. Сега трябва да пишете само така:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Първо прототипът оказва влияние върху компилацията на извикванията, а след това сигнатурите поставят аргументите в съответните променливи по време на изпълнение.
Все пак, ще остане възможността да се върне всичко обратно на веднъж:
use compat::perl5;
Или по единично.
Perl 5.32 преминава в режим на дълга поддръжка за срок от 5 години.
Разширено съобщение от Брайан Д Фой: 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
