Auf der heute stattfindenden virtuellen Entwicklermesse fĂŒr die Programmiersprache Perl wurde 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 , 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 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 ââ 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 â«).
In Perl 7 wird auĂerdem erwartet, dass bereits bestehende experimentelle Funktionen stabilisiert und standardmĂ€Ăig aktiviert werden, wie (â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 (â«) â 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 (««) â 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 (««).
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
