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.

In Pocket speichern vorlesen Druckansicht 24 Kommentare lesen
Lesezeit: 3 Min.
Von
  • 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 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.

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)