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)