Perl 7 wurde angekündigt

Auf der heute stattfindenden virtuellen Entwicklermesse für die Programmiersprache Perl wurde das Projekt Perl 7 angekündigt, das die Entwicklung der Perl 5-Version ohne radikale Änderungen nahtlos fortsetzen wird. Perl 7 wird ähnlich dem Release sein Perl 5.32.0, mit Ausnahme anderer Standardeinstellungen, die besser zu modernen Entwicklungspraktiken passen. Ansonsten bleibt Perl 7 dasselbe wie Perl 5 und bewahrt die Kompatibilität mit zuvor entwickelten Anwendungen.

Eine bedeutende Versionsnummer wird als eine Art Trennlinie für den Übergang zu einem neuen Modell der Funktionsentwicklung der Programmiersprache Perl ohne merkliche Verletzung der Rückwärtskompatibilität fungieren.
Es wird erwartet, dass die Entwicklung von Perl 7 dazu beitragen wird, neue Entwickler für Perl zu gewinnen und den Prozess der Integration bedeutender neuer Funktionen in die Sprache zu erleichtern, während die Kompatibilität mit der Codebasis bestehender Projekte erhalten bleibt. Die Nummer 7 wurde gewählt, da Perl 6 für die Entwicklung der Sprache verwendet wurde, die jetzt entwickelt sich unter dem eigenen Namen Raku bekannt ist. Die erste Veröffentlichung von Perl 7 wird für das nächste Jahr erwartet. Die Version Perl 5.32 wird die letzte in der Perl 5-Serie sein und für 5 bis 10 Jahre unterstützt werden.

Die auffälligste Änderung in Perl 7 wird die standardmäßige Aktivierung des Modus „strict“ sein, der eine strenge Überprüfung der Variablendefinitionen, der Verwendung von symbolischen Zeigern und der Zuweisung von Unterprogrammen impliziert. Die Verwendung von „use strict“ wird als gute Praxis angesehen und von den meisten Entwicklern angewendet. Ebenso plant man, standardmäßig die Behandlung von Warnungen zu aktivieren „use warnings«).

In Perl 7 wird außerdem erwartet, dass bereits bestehende experimentelle Funktionen stabilisiert und standardmäßig aktiviert werden, wie Funktionssignaturen („use feature 'signatures'“), die es bei der Definition einer Funktion ermöglichen, die Eingabeargumente zu definieren und deren Anzahl automatisch zu überprüfen (man kann schreiben „sub foo ($left, $right) {“ anstelle von „sub foo { my($left, $right) = @_;“). Auch die Unterstützung des „isa“-Operators zur Überprüfung, ob ein Objekt eine Instanz der angegebenen Klasse oder einer davon abgeleiteten Klasse ist, soll standardmäßig aktiviert werden („if( $obj isa Package::Name )“), sowie Post-Dereferenzierungsoperationen „$sref->$*“ anstelle von „${ $sref }“, „$aref->@*“ anstelle von „@{ $aref }“ und „$href->%{ … }“ anstelle von „%$href{ … }“.

Zu den Kandidaten für die standardmäßige Deaktivierung in Perl 7 gehören:

  • Indirekte Notation für den Aufruf von Objekten („kein Feature qw(indirect)«) — eine veraltete Methode zum Aufrufen von Objekten, bei der anstelle von «->» ein Leerzeichen verwendet wird («method $object @param» statt «$object->$method(@param)»). Zum Beispiel muss man immer «my $cgi = CGI->new» anstelle von «my $cgi = new CGI» verwenden.
  • Nackte Dateideskriptoren ohne Variablendeklaration («kein bareword::filehandle«) — die Verwendung von Konstruktionen wie «open FH, $file» führt zu einem Fehler; man muss «open my $fh, $file» verwenden. Diese Änderung betrifft nicht die Standard-Dateideskriptoren STDIN, STDOUT, STDERR, ARGV, ARGVOUT und DATA.
  • Fiktive mehrdimensionale Arrays und Hashes im Perl 4-Stil («kein multidimensional«).
    Zum Beispiel führt die Angabe von «$hash{1, 2}» zu einem Fehler; stattdessen sollte ein Zwischenspeicherarray verwendet werden, wie z.B. «$hash{join($;, 1, 2)}».
  • Prototypen-Deklarationen im Perl 4-Stil (man muss «use :prototype()» verwenden).

In ferner Zukunft plant man standardmäßig die Unterstützung von Unicode, was die Entwickler von der Angabe «use utf8» im Code befreien wird. Für Module und Skripte, die Probleme mit den neuen Standardeinstellungen haben, besteht die Möglichkeit, das Verhalten von Perl 5 durch das Hinzufügen der Zeile «use compat::perl5» im Code wiederherzustellen. Einzelne Einstellungen bleiben ebenfalls erhalten und können separat geändert werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4