Login
Newsletter
Werbung

Fr, 2. Juni 2017, 10:42

Software::Entwicklung

Perl 5.26.0 freigegeben

Die neue Version 5.26 von Perl bringt den Anwendern Unicode 9.0 und zahlreiche weitere Verbesserungen. Dazu kommt eine Änderung zur Sicherheit, die weitreichende Auswirkungen haben kann.

Mirko Lindner

Nach gut einem Jahr Entwicklung hat die Perl Foundation Perl 5.26.0 freigegeben. Da Perl 6, anders als man vermuten könnte, eine vollständig neue Sprache ist, wird Perl 5 eigenständig weiter entwickelt. So gibt es weiter auf absehbare Zeit jedes Frühjahr eine neue Version von Perl 5.

Gegenüber Perl 5.24 wurden in der neuen Version nach Angaben der Entwickler Änderungen an über 360.000 Codezeilen vorgenommen, an denen 86 Autoren beteiligt waren. Damit sind die Änderungen ungefähr gleich umfangreich wie bei der letzten Version.

In Perl 5.26 gibt es eine einschneidende Änderung, die die Sicherheit von Perl-Programmen verbessert, aber Anpassungen an zahlreichen Projekten und Installationen erforderlich machen könnte. Dabei ist die Änderung nicht syntaktischer Natur, sondern lediglich eine Änderung des Verhaltens. Bisher wurden Module aus dem aktuellen Verzeichnis geladen, wenn sie nirgends im Suchpfad gefunden wurden. Perl verhielt sich also so, als sei implizit das aktuelle Arbeitsverzeichnis an den Suchpfad, repräsentiert durch die Variable @INC, angehängt. Das war gefährlich, da es die Möglichkeit erleichterte, einem nichts Böses ahnenden Benutzer ein manipuliertes Modul unterzuschieben. Da sich viele Projekte auf dieses Verhalten verlassen haben, sind nun an zahlreichen Stellen Änderungen nötig. Das neue Verhalten kann bereits beim Compilieren des Perl-Interpreters abgestellt werden, was aber in den seltensten Fällen ratsam ist. Auch die Umgebungsvariable PERL_USE_UNSAFE_INC kann das alte Verhalten erzwingen.

Im Kern der Sprache gab es einige Erweiterungen, so sind lexikalische Subroutinen jetzt nicht mehr experimentell und ihre Verwendung erzeugt keine Warnmeldung mehr. Here-Dokumente können jetzt auch eingerückt sein und die Ende-Zeichenfolge wird auch dann erkannt, wenn am Zeilenanfang einige Leerzeichen oder Tabs stehen, allerdings muss man das dem Interpreter mit einem ~-Zeichen explizit mitteilen. So wird das neue Verhalten aktiv, wenn man beispielsweise <<~EOF; statt <<EOF; schreibt. Die Einrückung wird beim Einlesen automatisch entfernt.

Reguläre Ausdrücke kennen nun den Modifikator /xx, der funktioniert wie /x, aber auch Leerzeichen und Tabs in Klammerausdrücken zulässt. So können reguläre Ausdrücke noch übersichtlicher geschrieben werden. Ein {-Zeichen in einem regulären Ausdruck muss jetzt mit einem Escape-Zeichen versehen werden, wenn es für sich selbst stehen und kein Metazeichen sein soll. Das neue Array @{^CAPTURE} bietet Zugriff auf gefundene Teilstrings. Die ähnlichen Ausdrücke %{^CAPTURE} und %{^CAPTURE_ALL} sind dagegen nur verständlichere Schreibweisen bereits bestehender Variablen. Neu ist auch die noch experimentelle Möglichkeit, Variablen als Referenzen zu deklarieren.

Die Unterstützung von Unicode wurde auf Unicode 9.0 angehoben, und die Sortierreihenfolge von UTF-8 wird als Standard verwendet, wenn das System das unterstützt und UTF-8 als Zeichensatz eingestellt ist. Darüber hinaus gab es zahlreiche weitere Verbesserungen, Optimierungen und Aktualisierungen, die man in den Anmerkungen zur Veröffentlichung im Detail nachlesen kann. Perl 5.26 ist über CPAN oder von perl.org herunterzuladen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung