Ankündigung der Veröffentlichung von Perl 7

Gestern Abend auf der "Perl and Raku Conference in the Cloud" kündigte Sawyer X den Wechsel der Hauptversion von Perl von 5 auf 7 an. Die Arbeiten laufen bereits, die neue Version wird innerhalb eines Jahres erscheinen. Große Änderungen sind nicht zu erwarten, kurz gesagt: Perl 7 ist immer noch Perl 5.32 mit modernen Standardeinstellungen. Sie müssen die Funktionen, die Sie ohnehin nutzen, nicht mehr ausdrücklich aktivieren, sie werden für Sie eingeschaltet!

Was wird eingeschaltet?

Eine vollständige Liste gibt es noch nicht, aber strict und warnings auf jeden Fall! In der 7. Version werden die Signaturen wahrscheinlich experimentell bleiben, utf8 wird ebenfalls nicht rechtzeitig aktiviert werden können.

Was wird deaktiviert?

  • Indirekte Methodenaufrufe:

    {;
    package Foo;

    sub new { bless {} }
    sub bar { print "Hello from bar()!n" x pop }
    }

    # Нормальный вызов
    my $foo = Foo->new();
    # Непрямой вызов
    bar $foo 42;

  • Leere Wörter (barewords) als Identifikatoren für Deskriptoren (außer für die Standardwerte (STDIN, STDOUT, STDERR))
  • Pseudo-mehrdimensionale Hashes im Stil von Perl 4.

    # примеры взяты из perldoc perlvar
    $foo{$x,$y,$z}
    # на самом деле означает $foo{join($;, $x, $y, $z)}

  • Alte Prototypen im Stil von Perl 4. Jetzt muss nur noch so geschrieben werden:

    sub foo :prototype($$) ($left, $right) {
    return $left + $right;
    }

    Zuerst der Prototyp, der die Kompilierung von Aufrufen beeinflusst, und dann die Signaturen, die die Argumente zur Laufzeit in die entsprechenden Variablen setzen.

Dennoch bleibt die Möglichkeit, alles pauschal zurückzusetzen:
use compat::perl5;
Oder einzeln.

Perl 5.32 wechselt in den Long-Term-Support-Modus für einen Zeitraum von 5 Jahren.

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

60GB SSD 8Gb DDR4