Учора ўвечары на "Perl and Raku Conference in the Cloud", Sawyer X анансаваў змену асноўнай версіі Perl з 5 на 7. Працы ўжо вядуцца, новая версія выйдзе на працягу года. Вялікай колькасці змен чакаць не варта, калі сцісла: Perl 7 гэта ўсё той жа Perl 5.32 з сучаснымі наладамі па змаўчанні. Вам больш не трэба відавочна падлучаць магчымасці якія вы і так карыстаецеся, іх уключаць для вас!
Што ўключаць?
Поўнага спісу пакуль няма, але strict і warnigs сапраўды! У 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