Perl 5.20: Schleichender Eintritt in die Neuzeit

Das neue Perl-Release bringt zwei große Neuerungen: die sehnlich erwarteten Signaturen für Subroutinen und eine zusätzliche Syntax zum Dereferenzieren.

 –  90 Kommentare

Getreu der Regel: "im fünften Monat eines Jahres ein neues Perl 5.x" stellen die Perl-Porter um Ricardo Signes die neue, stabile Version 5.20 der dynamischen Sprache bereit. Sie enthält vor allem zwei große Neuerungen gegenüber dem letzten größeren Perl-Release: die lange erwarteten Signaturen für Subroutinen und eine neue, zusätzliche Syntax zum Dereferenzieren.

Sowohl das Feature "signatures" als auch "postderef" werden (wie seit Perl 5.18 üblich) als experimentelle Funktionen eingeführt. Sie müssen also nicht nur durch use feature qw/.../; oder use v5.20; freigeschaltet werden, um Produktionscode nicht zu stören, sondern auch entsprechende Warnungen sind mit no warnings /experimental[::...]/; zu unterdrücken. Bei aktivierten Signaturen sind die ähnlich aussehenden Prototypen mit dem Attribut :prototype(...) zu kennzeichnen.

Das seit Perl 5.14 mögliche, automatische Dereferenzieren von Befehlen wie push (autoderef) ist nun ebenfalls experimentell und wird voraussichtlich abgeschafft. Interpreter-Threads empfehlen die Entwickler bereits jetzt ausdrücklich nicht mehr. Durch eine verbesserte 64-Bit-Unterstützung kann Perl nun mit größeren Strings und Arrays umgehen. Unicode wurde auf den Stand der Version 6.3 gehoben, und mit \p{Any} lassen sich beliebige Codepoints finden.

Für eine verbesserte Sicherheit kommt ab Perl 5.20 platformunabhängig eine eigene Implementierung des Zufallsgenerators drand48 zum Einsatz. Viele weitere interne Verbesserungen brachten neben den üblichen Bugfixes auch zahlreiche Geschwindigkeitsverbesserungen, die auch alltägliche Situationen betreffen.

Im Zuge der Modernisierung wurden mehrere altgediente Module aus der Kerndistribution entfernt, wozu auch das traditionsreiche CGI gehört, das durch die Generation Moo[se] überholte Object-Accessor sowie CPANPLUS. Dafür wird nun unter anderem Android offiziell unterstützt, mehrere alte und seltene Unix-Derivate wurden aufgegeben.

Siehe dazu auf heise Developer: