Gestern Abend auf der 'Perl and Raku Conference in the Cloud' hat Sawyer X angekündigt, dass die Hauptversion von Perl von 5 auf 7 gewechselt wird. Die Arbeiten laufen bereits, die neue Version wird im Laufe des Jahres veröffentlicht. Großartige Änderungen sind nicht zu erwarten; kurz gesagt: Perl 7 ist im Grunde dasselbe wie Perl 5.32, jedoch mit modernen Standardeinstellungen. Sie müssen die Funktionen, die Sie bereits verwenden, nicht mehr ausdrücklich aktivieren, sie werden für Sie aktiviert!
Was wird inkludiert?
Eine vollständige Liste liegt noch nicht vor, aber strict und warnings sind sicher dabei! In der 7. Version werden die Signaturen wahrscheinlich experimentell bleiben, und utf8 wird ebenfalls nicht rechtzeitig integriert.
Was wird deaktiviert?
- Der indirekte Aufruf von Methoden:
{;
package Foo;sub new { bless {} }
sub bar { print "Hello from bar()!n" x pop }
}# Нормальный вызов
my $foo = Foo->new();
# Непрямой вызов
bar $foo 42; - Barewords als Identifikatoren für Deskriptoren (außer für die Standard-Deskriptoren (STDIN, STDOUT, STDERR))
- Pseudo-multidimensionale Hashes im Perl 4-Stil.
# примеры взяты из perldoc perlvar
$foo{$x,$y,$z}
# на самом деле означает $foo{join($;, $x, $y, $z)} - Alter Prototypen im Perl 4-Stil. Jetzt muss man es nur noch so schreiben:
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}Zuerst der Prototyp, der die Kompilierung der Aufrufe beeinflusst, dann die Signaturen, die die Argumente zur Laufzeit in die entsprechenden Variablen bringen.
Dennoch bleibt die Möglichkeit, alles auf einmal zurückzusetzen:
use compat::perl5;
Oder einzeln.
Perl 5.32 tritt in eine fünfjährige Langzeitunterstützungsphase ein.
Ausführliche Ankündigung von Brian D. Foy: https://www.perl.com/article/announcing-perl-7/
TL;DR-Version von ihm: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html
Quelle: linux.org.ru
