Gisterenavond op de "Perl and Raku Conference in the Cloud" Heeft Sawyer X aangekondigd de overstap van de hoofdversie van Perl van 5 naar 7. Het werk is al aan de gang en de nieuwe versie zal binnen een jaar uitkomen. Verwacht geen grote veranderingen, in het kort: Perl 7 is gewoon Perl 5.32 met moderne standaardinstellingen. Je hoeft geen functionaliteiten meer expliciet in te schakelen die je al gebruikt, ze worden voor je ingeschakeld!
Wat wordt ingeschakeld?
Er is nog geen volledige lijst, maar strict en warnings zeker! In de 7e release blijven de sigaturen waarschijnlijk experimenteel, en utf8 zal ook niet op tijd worden ingeschakeld.
Wat wordt uitgeschakeld?
- Indirecte aanroep van methoden:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Blote woorden (barewords) als identificatoren (behalve de standaard (STDIN, STDOUT, STDERR))
- Pseudo-meerdimensionale hashes in Perl 4 stijl.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Oude prototypes in Perl 4 stijl. Je moet nu alleen zo schrijven:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Eerst de prototype die de compilatie van aanroepen beïnvloedt, en daarna de sigaturen die argumenten in de bijbehorende variabelen tijdens uitvoering plaatsen.
Tegelijkertijd blijft het mogelijk om alles weer terug te zetten in bulk:
use compat::perl5;
Of één voor één.
Perl 5.32 gaat over in een lange onderhoudsmodus van vijf jaar.
Uitgebreide aankondiging van Brian D Foy: https://www.perl.com/article/announcing-perl-7/
TL;DR versie van hem: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Bron: linux.org.ru
