Perl 5.44


3

Nach einem Jahr Entwicklung veröffentlicht wurde eine neue stabile Version der Programmiersprache Perl veröffentlicht — 5.44. Bei der Vorbereitung der neuen Version wurden etwa 270.000 Codezeilen geĂ€ndert (ohne Dokumentation und automatisch generierten Code – 110.000), die Änderungen betrafen 860 Dateien, und 71 Entwickler waren an der Entwicklung beteiligt.

Die Version 5.44 wurde gemĂ€ĂŸ dem vor dreizehn Jahren festgelegten Entwicklungszeitplan veröffentlicht, der vorsieht, dass neue stabile Versionen jĂ€hrlich und Fehlerkorrektur-Updates vierteljĂ€hrlich erscheinen. Etwa einen Monat spĂ€ter ist die Veröffentlichung des ersten Fehlerkorrektur-Updates Perl 5.44.1 geplant, das die schwerwiegendsten Fehler beheben wird, die beim Einsatz von Perl 5.44.0 festgestellt wurden. Mit der Veröffentlichung von Perl 5.44 wird die UnterstĂŒtzung fĂŒr die Version 5.40 eingestellt, fĂŒr die Updates in Zukunft nur im Falle von kritischen Sicherheitsproblemen veröffentlicht werden können. Der Entwicklungsprozess fĂŒr die experimentelle Version 5.45 hat begonnen, auf deren Grundlage in der ersten HĂ€lfte des Jahres 2027 eine stabile Version Perl 5.46 erstellt wird, solange keine Entscheidung getroffen wird auf die Nummerierung 7.x zu wechseln.

SchlĂŒssige eingefĂŒhrt wurde, die im Januar dieses Jahres in den Kernel ĂŒbernommen wurde. Es betrifft ausschließlich die Version 5.1 und tritt in den meisten FĂ€llen auf Systemen mit Samsung-SSD-Speichern auf, bei denen zur VerschlĂŒsselung Daten mit dm-crypt/LUKS ĂŒber device-mapper/LVM verwendet werden.:

  • HinzugefĂŒgt Eine experimentelle Möglichkeit zur Verwendung von benannten Parametern in Signaturen Funktionen, die die Liste der in die Funktion ĂŒbergebenen Variablen nicht im Funktionskörper, sondern bei deren Deklaration festlegen. Diese neue FunktionalitĂ€t ermöglicht es, Parameter in beliebiger Reihenfolge unter Verwendung von SchlĂŒssel/Wert-Paaren und einem Syntaxschema, das der Zuweisung von Elementen in Hashes entspricht, zu ĂŒbergeben:
    • alter Syntax: sub f { my ($x, $y) = @_; 
} f(1, 2);
    • Signaturen: sub f ($x, $y) { 
 } f(1, 2);
    • Signaturen mit benannten Parametern: sub f (:$x, :$y) { 
 } f(y => 2, x => 1);
  • Eine experimentelle Funktion zur Verwendung von Aliasen (Zeigern auf Zeiger) in foreach-Schleifen mit mehreren Variablen wurde hinzugefĂŒgt. Diese Möglichkeit ermöglicht es, einen Alias in der foreach-Schleife zu erstellen, wĂ€hrend gleichzeitig mehrere Werte in einer Iteration der Schleife abgerufen werden. Zum Beispiel kann ein Alias fĂŒr ein Hash-Element mit einem Array beim gleichzeitigen Durchlaufen von SchlĂŒsseln und Werten des Hashs erstellt werden: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Das Array $key enthĂ€lt: @items"; } # Vor Version 5.44 hĂ€tte eine Dereferenzierung durchgefĂŒhrt werden mĂŒssen: foreach my ( $key, $var ) ( %hash ) { say "Das Array $key enthĂ€lt: @$var"; } # Ohne die experimentellen Funktionen refaliasing und declared_refs: foreach my $key (keys %hash) { say "Das Array $key enthĂ€lt: @{$hash{$key}}"; }
  • In regulĂ€ren AusdrĂŒcken implementiert. Der experimentelle Modus 'enhanced_xx', der die Verwendung des Modifikators /xx mit Zeichensatzklassen in eckigen Klammern ([a-zA-Z]) ermöglicht, um sie in mehrere Zeilen zu unterteilen oder Kommentare einzufĂŒgen. Beispielsweise kann die Bedingung if ($text =~ m/[a-zA-Z]){ so formuliert werden: if ($text =~ m/[ a-z # Kleinbuchstaben A-Z # Großbuchstaben ]/xx) {
  • Im Generator fĂŒr Pseudorandom-Zahlen wird der Systemaufruf getentropy() verwendet, um Entropie auf Systemen mit dessen UnterstĂŒtzung (Linux, BSD, macOS) zu gewinnen. Auf anderen Systemen erfolgt die Entropiegewinnung durch das Lesen von /dev/urandom oder unter Verwendung eines Hashs aus der Zeit, der Prozess-ID und dem Wert des Zeigers.
  • UnterstĂŒtzung der Spezifikation hinzugefĂŒgt Unicode 17.0.
  • Es wird strikte Einhaltung der Unicode-Regeln fĂŒr die Namen von Identifikatoren und Gruppen von regulĂ€ren AusdrĂŒcken gewĂ€hrleistet, wobei nun etwa 160 Unicode-Zeichen, die zuvor in die Klasse w fielen, nicht mehr verwendet werden dĂŒrfen. Beispielsweise wurde die latine Buchstaben in Kreisen, die echten Buchstaben Ă€hneln, aber nicht sind, aus der w-Klasse, die alle Buchstaben, Zahlen und den Unterstrich umfasst, entfernt. Diese Änderung betrifft nur Programme, die den Modus use utf8 verwenden.
  • SchwĂ€chen, die durch PufferĂŒberlĂ€ufe in den Funktionen Perl_study_chunk (CVE-2026-8376, die sich in 32-Bit-Bauten manifestieren) und S_measure_struct (CVE-2026-57432), sowie ein Überlauf des 16-Bit-ZĂ€hlers im Regex-Engine (CVE-2026-13221), was zu einer fehlerhaften Auslösung des regulĂ€ren Ausdrucks fĂŒhren kann.
  • Die Verwendung des goto-Befehls an Positionen innerhalb von Schleifen und Blockstrukturen ist nicht mehr erlaubt. Diese Möglichkeit wurde 2010 als veraltet erklĂ€rt.
  • Leistungsoptimierungen wurden durchgefĂŒhrt, die die VorgĂ€nge von Addition, Subtraktion und Multiplikation mit Ganzzahlen, die Verarbeitung von Funktionssignaturen sowie das BefĂŒllen von Hashes aus SchlĂŒssel/Wert-Listen mit zur Compile-Zeit bekannten String-SchlĂŒsseln beschleunigen.

Quelle: linux.org.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster