Вчора ввечері на "Perl and Raku Conference in the Cloud", Sawyer X анонсував зміну основної версії Perl із 5 на 7. Роботи вже ведуться, нова версія вийде протягом року. Великої кількості змін чекати не варто, якщо коротко: Perl 7 це все той же Perl 5.32 з сучасними стандартними налаштуваннями. Вам більше не треба явно підключати можливості, які ви і так використовуєте, їх включать для вас!
Що включать?
Повного списку поки немає, але strict і warnigs точно! У 7-му релізі сигнатури швидше за все залишаться експериментальними, utf8 теж включити не встигнуть.
Що буде вимкнено?
- Непрямий виклик методів:
{;
пакет 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) {
повернути $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