perl 5.44


3

Efter ett år av utveckling publicerad release av en ny stabil gren av programmeringsspråket Perl - 5.44. På förbereder Den nya utgåvan ändrade cirka 270 000 rader kod (exklusive dokumentation och automatiskt genererad kod - 110 000), ändringarna påverkade 860 filer och 71 utvecklare deltog i utvecklingen.

Grenen 5.44 har släppts i enlighet med det fasta utvecklingsschemat som etablerades för tretton år sedan, vilket innebär att nya stabila grenar släpps en gång om året och mindre utgåvor var tredje månad. Den första mindre utgåvan, Perl 5.44.1, är planerad att släppas om ungefär en månad och åtgärdar de viktigaste buggarna som upptäcktes under implementeringen av Perl 5.44.0. Med lanseringen av Perl 5.44 har stödet för grenen 5.40 upphört; uppdateringar för den kan komma att släppas i framtiden endast om kritiska säkerhetsproblem upptäcks. Har börjat utvecklingsprocessen för den experimentella 5.45-grenen, som kommer att ligga till grund för den stabila utgåvan av Perl 5.46 under första halvåret 2027, om inte ett beslut fattas gå över till numrering 7.x.

Nyckel förändringar:

  • Lagt till experimentell möjlighet att använda namngivna parametrar i signaturer Funktioner som definierar listan över variabler som skickas till funktionen, inte i funktionens brödtext, utan under dess deklaration. Den här nya funktionen gör det möjligt att skicka parametrar inte i en strikt ordning, utan i valfri ordning, med hjälp av nyckel-/värdepar och en syntax som liknar den som används för att tilldela element i hashkoder:
    • gammal syntax: sub f { my ($x, $y) = @_; …} f(1, 2);
    • signaturer: sub f ($x, $y) { … } f(1, 2);
    • signaturer med namngivna parametrar: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Lade till experimentellt stöd för att använda alias (pekare till pekare) i foreach-loopar med flera variabler. Den här funktionen låter dig skapa ett alias i en foreach-loop när du hämtar flera värden i en enda loop-iteration. Du kan till exempel skapa ett alias för ett hash-element med en array när du itererar över både nycklarna och värdena för hashen: use v5.44; use feature qw(refaliasing declared_refs); my %hash = (one => [1], two => [2, 2],); foreach my ($key, @items) (%hash) { say "$key-arrayen innehåller: @items"; } # Före version 5.44 krävdes dereferencing: foreach my ($key, $var) (%hash) { say "$key-arrayen innehåller: @$var"; } # Utan experimentell refaliasing och declared_refs-funktioner: foreach my $key (keys %hash) { say "$key-arrayen innehåller: @{$hash{$key}}"; }
  • I reguljära uttryck genomförs Det experimentella läget 'enhanced_xx' tillåter att modifieraren /xx används med teckenklasser inom hakparenteser ([a-zA-Z]) för att dela upp dem över flera rader eller för att infoga kommentarer. Till exempel kan villkoret if ($text =~ m/[a-zA-Z]/){ skrivas som: if ($text =~ m/[ a-z # gemener A-Z # versaler ]/xx) {
  • Pseudoslumptalsgeneratorn använder systemanropet getentropy() för att erhålla entropi på system som stöder den (Linux, BSD, macOSPå andra system erhålls entropi genom att läsa från /dev/urandom-enheten eller genom att använda en hash av tid, process-ID och pekarvärde.
  • Tillagt specifikationsstöd Unicode 17.0.
  • Strikt efterlevnad av Unicode-regler har säkerställts för identifierarnamn och reguljära uttrycksgrupper, där cirka 160 Unicode-tecken som tidigare omfattades av w-klassen nu är förbjudna. Till exempel exkluderar w-klassen, som täcker alla bokstäver, siffror och understreck, nu inringade latinska bokstäver, som liknar faktiska bokstäver men inte är det. Denna beteendeändring påverkar endast program som använder utf8-läget.
  • Åtgärdade sårbarheter orsakade av buffertöverflöden i Perl_study_chunk-funktionerna (CVE-2026-8376, visas i 32-bitars sammansättningar) och S_measure_struct (CVE-2026-57432), såväl som överflöde av 16-bitarsräknaren i Regex-motorn (CVE-2026-13221), vilket kan göra att det reguljära uttrycket misslyckas.
  • Det är förbjudet att hoppa till positioner inom loopar och blockkonstruktioner med hjälp av goto-operatorn. Den här funktionen avvecklades 2010.
  • Prestandaoptimeringar gjordes för att påskynda heltalsaddition, subtraktion och multiplikation, bearbetning av funktionssignaturer och ifyllning av hashkoder från nyckel-/värdelistor med strängnycklar som är kända vid kompileringstillfället.

Källa: linux.org.ru

Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster