Der Verwaltungsausschuss des Perl-Projekts hat die PlĂ€ne fĂŒr die weitere Entwicklung von Perl 5 und die Schaffung von Perl 7 zusammengefasst. WĂ€hrend der Diskussionen stimmte der Verwaltungsausschuss zu, dass eine Verletzung der KompatibilitĂ€t mit bereits fĂŒr Perl 5 geschriebenem Code nicht akzeptabel ist, es sei denn, eine solche Verletzung ist notwendig, um SicherheitsanfĂ€lligkeiten zu beheben. Der Ausschuss kam auch zu dem Schluss, dass die Sprache sich weiterentwickeln sollte und es erforderlich ist, neue Möglichkeiten intensiver zu fördern, wĂ€hrend gleichzeitig der Zugang zu aufkommenden Innovationen vereinfacht und deren EinfĂŒhrung gefördert wird.
Im Gegensatz zu den ursprĂŒnglichen Absichten, die Ănderungen, die die RĂŒckwĂ€rtskompatibilitĂ€t in Perl 7 verletzen, standardmĂ€Ăig einzuschlieĂen, sieht der neue Plan vor, Perl 5 schrittweise in Perl 7 zu ĂŒberfĂŒhren, ohne die RĂŒckwĂ€rtskompatibilitĂ€t mit bereits vorhandenem Code zu verletzen. Die Veröffentlichung von Perl 7.0 wird konzeptionell nicht von der letzten Perl 5.xx-Version abweichen.
Die Entwicklung neuer Perl 5-Versionen wird in gewohnter Weise fortgesetzt â neue Möglichkeiten, die mit altem Code inkompatibel sind, werden weiterhin nur durch explizite Angabe der Pragmas 'use version' oder 'use feature Möglichkeit' in den Code aufgenommen. Zum Beispiel wurde in der Version Perl 5.010 das neue SchlĂŒsselwort 'say' eingefĂŒhrt, aber da im bestehenden Code Funktionen mit dem Namen 'say' verwendet werden konnten, wurde die UnterstĂŒtzung des neuen SchlĂŒsselworts nur durch die explizite Angabe des Pragmas 'use feature 'say'' aktiviert.
Der neue Syntax, der in frĂŒheren Versionen bei der Verarbeitung zu einem Fehler fĂŒhrte, wird sofort ohne die Notwendigkeit spezieller Pragmas verfĂŒgbar. Zum Beispiel wird in Perl 5.36 eine vereinfachte Syntax fĂŒr die gleichzeitige Verarbeitung mehrerer Werte einer Liste ('foreach my ($key, $value) (%hash) {') sofort verfĂŒgbar sein, selbst in Code ohne das Pragma 'use v5.36'.
In der aktuellen Form werden in Perl 5.36 unter Verwendung des Pragmas 'use v5.36' 13 inkompatible Möglichkeiten aktiviert ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa', 'bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' und 'unicode_strings'), die Modi 'use strict' und 'use warnings' standardmĂ€Ăig aktiviert und die UnterstĂŒtzung fĂŒr die veraltete indirekte Notation beim Aufruf von Objekten (wo statt '->' ein Leerzeichen verwendet wird) sowie mehrdimensionale Arrays und Hashes im Stil von Perl 4 ('$hash{1, 2}') deaktiviert.
Wenn genĂŒgend Ănderungen angehĂ€uft sind, wird anstelle einer weiteren Ausgabe von Perl 5.x eine Version Perl 7.0 erstellt, die einen spezifischen Zustand darstellt, jedoch vollstĂ€ndig rĂŒckwĂ€rtskompatibel zu Perl 5 bleibt. Um inkompatible Ănderungen und Einstellungen einzufĂŒhren, ist die explizite HinzufĂŒgung der Pragmatik âuse v7â im Code erforderlich. Das heiĂt, Code mit der Pragmatik âuse v7â kann als âmodernes Perlâ interpretiert werden, in dem inkompatible SprachĂ€nderungen verfĂŒgbar sind, wĂ€hrend ohne diese Pragmatik âkonservatives Perlâ bleibt, das vollstĂ€ndig rĂŒckwĂ€rtskompatibel mit frĂŒheren Versionen ist.
Quelle: opennet.ru
