Wczoraj wieczorem na "Perl and Raku Conference in the Cloud", Sawyer X ogłosił zmianę głównej wersji Perla z 5 na 7. Prace już trwają, nowa wersja zostanie wydana w ciągu roku. Nie oczekuj dużych zmian, w skrócie: Perl 7 to wciąż ten sam Perl 5.32 z nowoczesnymi ustawieniami domyślnymi. Już nie musisz jawnie włączać funkcji, które już używasz, one będą włączone automatycznie!
Co zostanie włączone?
Nie ma jeszcze pełnej listy, ale strict i warnings na pewno! W 7. wydaniu sygnatury prawdopodobnie pozostaną eksperymentalne, a utf8 także nie zostanie włączone na czas.
Co zostanie wyłączone?
- Niebezpośrednie wywołanie metod:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Puste słowa (barewords) jako identyfikatory deskryptorów (z wyjątkiem standardowych (STDIN, STDOUT, STDERR))
- Pseudo wielowymiarowe hashe w stylu Perl 4.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Stare prototypy w stylu Perl 4. Teraz trzeba pisać tylko w ten sposób:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Najpierw prototyp wpływający na kompilację wywołań, a następnie sygnatury umieszczające argumenty w odpowiednich zmiennych podczas wykonywania.
Niemniej jednak, będzie możliwość przywrócenia wszystkiego z powrotem hurtowo:
use compat::perl5;
Lub po jednym.
Perl 5.32 przechodzi w tryb długoterminowego wsparcia na okres 5 lat.
Rozbudowana zapowiedź od Briana D Foia: https://www.perl.com/article/announcing-perl-7/
Wersja TL;DR od niego: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Źródło: linux.org.ru
