Programmiersprache Perl 5.40 liefert kleinere Ergänzungen nach
Nach Weichenstellung durch das Objektsystem Corinna und Einführen der Class-Feature in Perl 5.38 bringt das neue Release kleinere, aber konsequente Neuerungen.
- Herbert Breunung
Mit dem noch immer experimentellen Class-Feature hatten die Perl Porter im Zuge der Einführung des neuen Objektsystems Corinna im vergangenen Jahr in Perl 5.38 bedeutende Weichenstellungen vorgenommen. Das am 9. Juni 2024 vorgelegte Release 5.40 knüpft an diese Vorarbeiten an und liefert eine Reihe kleinerer, aber konsequenter Neuerungen.
Die Sache mit den Objekten
Die interessanteste Frage mit Blick auf Perl 5.40 ist: Wie viel der noch geplanten Corinna-Funktionalität findet sich im neuesten Release? Leider nicht viel. Lediglich autogenerierte Getter-Methoden lassen sich nun mit dem Attribut :reader
einer field
-Variable erzeugen, so wie es ausführlich im Hintergrundartikel zum Objektsystem Corinna beschrieben ist. Nicht vorhersehbar war die Hinzunahme des Tokens __CLASS__
, das dem bekannten __PACKAGE__
ähnelt. Es liefert den Namen der aktuellen, mit class
erzeugten Klasse, lässt sich aber ebenso wie $self
verwenden, um Klassen-Methoden aufzurufen. Ruft eine erbende Unterklasse Code auf, gibt __CLASS__
im Gegensatz zu __PACKAGE__
den Namen oder die Referenz der aktuellen (Unter-)Klasse zurück.
Die Ausnahmebehandlung per 'feature' try
verlässt fahrplanmäßig den Status "experimental", da die letzte Änderung daran mit Perl 5.36 vorgenommen wurde. Die Ausnahmebehandlung ist nun standardmäßig mit use v5.40
oder der Kommandozeilenoption -E
zugeschaltet.
Neu und daher vorläufig noch experimentell sind dagegen die parameterlosen 'builtin'-Funktionen (Konstanten) nan
und inf
. Sie helfen Entwicklerinnen und Entwicklern in Zukunft dabei zu unterscheiden, ob das Ergebnis einer Gleitkommazahlberechnung lediglich nicht darstellbar (nan
) oder mathematisch unendlich (inf
) ist. Das 'builtin' load_module
entspricht weitestgehend require
, nur dass sein Ergebnis im Erfolgsfall der Name und nicht der Rückgabewert des Moduls ist.
Neuer Operator schließt Lücke
Ebenfalls neu ist der Operator ^^
, der lediglich eine lange bestehende, aber selten bemängelte Lücke schließt. Er ist das Pendant zu xor
mit hoher Präzedenz. Er folgt dem durch die Sprache C etablierten Muster, nach dem logische Operatoren aus zwei gleichen Zeichen bestehen, die dem bit-weisen Pendant entlehnt sind (&
für und
, |
für oder
und ^
für exklusives oder
).
Unter den Änderungen in Perl 5.40 hervorzuheben ist noch das Beheben der Sicherheitslücken CVE-2023-47038 und CVE-2023-47039. Beide wurden rückwirkend als 5.38.2 und 5.36.3 eingepflegt.
Ein vollständiger Überblick mit mehr Details zu den Änderungen in Perl 5.40 finden sich im perldelta.
Siehe auch:
- Perl bei heise Download
(map)