Perl 5.10 implementiert Features von Version 6

Perl 5.10 implementiert einige Funktionen und Operatoren, die erst für Version 6 vorgesehen waren. Dazu gehören unter anderem ein switch-Statement und ein Vergleichsoperator für nahezu beliebige Objekte.

In Pocket speichern vorlesen Druckansicht 54 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christian Kirsch

Während die Arbeit an Perl 6 seit Jahren langsam voranschreitet, haben die Entwickler die aktuelle Version 5.10 der freien Skriptsprache herausgebracht. Eine der wichtigsten Neuerungen in der Ausgabe, die zum 20. Geburtstag von Perl erschien, ist in ihren Augen das switch-Statement. Es kann anders als ähnliche Konstrukte in anderen Programmiersprachen den Wert einer Variablen mit (fast) beliebigen Objekten vergleichen: einem regulären Ausdruck, einer Liste von Werten, dem Ergebnis eines Funktionsaufrufs oder einem Vergleich wie $_ < 100. Basis von switch ist der "smart match"-Operator ~~; beides gehört zum Sprachumfang der 6er-Version.

Weitere Änderungen betreffen reguläre Ausdrücke: Gruppen lassen sich nun mit einem Namen versehen und ansprechen (bislang waren nur Ziffern möglich), rekursive Ausdrücke etwa zum Finden verschachtelter Klammern sind einfacher zu schreiben. Für spezielle Anforderungen können Entwickler das Backtracking innerhalb regulärer Ausdrücke beeinflussen.

Ebenfalls aus Perl 6 entlehnt sind der "Defined-or"-Operator // und die Funktion say. // verkürzt Ausdrücke wie das bisherige defined $a ? $a : $b zu $a // $b, und say hängt automatisch ein Newline an die auszugebende Zeichenkette an. Ebenso wie das neue state für die Definition statischer Variabler müssen diese Neuerungen mit dem in 5.10 hinzugekommenen Schlüsselwort feature eingeschaltet werden.

Weggefallen sind unter anderem "Pseudo Hashes", die nie viele Anhänger hatten finden können. Hingegen haben "Field Hashes", die eine "umgekrempelte" Objektdefinition ermöglichen, ihren Weg in Perl 5.10 gefunden. Gegenüber dem bisher üblichen Verfahren soll dieses den Vorteil haben, dass es die Implementierungsdetails des Objekts besser abschirmt. Ein gänzlich überarbeitetes Objektmodell, das dem Stand der Technik entspricht, wird es allerdings erst mit Perl 6 geben.

Die Entwickler heben neben den neuen Funktionen einen geringeren Speicherbedarf und höhere Geschwindigkeit des Interpreters hervor. Außerdem sei eine Perl-Installation nun leichter an einen neuen Ort verschiebbar – allerdings setzt dies das Setzen einer Option beim Übersetzen der Quellen voraus.

Eine Liste aller Änderungen, insbesondere auch Stolperfallen beim Umstieg auf die neue Version, enthält die Datei pod/perl5100delta.pod im Installationsverzeichnis. Die Quellen sind im CPAN (Comprehensive Perl Archive Network) erhältlich. (ck)