Perl 5.44 programmeringsspråk tillgängligt

Efter ett års utveckling har den nya stabila grenen av programmeringsspråket Perl, version 5.44, släppts. Vid förberedelserna av den nya versionen ändrades cirka 270 000 rader kod (exklusive dokumentation och automatiskt genererad kod – 110 000 rader), vilket påverkade 860 filer, och 71 utvecklare bidrog till dess utveckling.

Grenen 5.44 har släppts i enlighet med det fasta utvecklingsschemat som fastställdes 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ärda de viktigaste buggarna som upptäcktes under implementeringen av Perl 5.44.0. Tillsammans 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. Utvecklingen har påbörjats av den experimentella grenen 5.45, som kommer att utgöra grunden för den stabila utgåvan Perl 5.46 under första halvan av 2027, såvida inte ett beslut fattas att byta till versionsnumreringen 7.x.

Viktiga ändringar:

  • Lade till experimentell funktion för att använda namngivna parametrar i funktionssignaturer. Dessa parametrar definierar listan över variabler som skickas till funktionen, inte i funktionens brödtext, utan under dess deklaration. Den nya funktionen tillåter att parametrar skickas inte i strikt ordning, utan i valfri ordning med hjälp av nyckel-/värdepar och syntax som liknar att tilldela element i hashvärden: 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}}"; }
  • Reguljära uttryck har nu ett experimentellt läge 'enhanced_xx', vilket gör att modifieraren "/xx" kan användas 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 stöd för Unicode 17.0-specifikationen.
  • 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 klassen "\w" nu är förbjudna. Till exempel exkluderar klassen "\w", 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 läget "use utf8".
  • Åtgärdade sårbarheter för buffertöverflöde i funktionerna Perl_study_chunk (CVE-2026-8376, som påverkar 32-bitarsversioner) och S_measure_struct (CVE-2026-57432), samt ett 16-bitars räknaröverflöde i Regex-motorn (CVE-2026-13221), vilket kunde leda till felaktig exekvering av ett reguljärt uttryck.
  • 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: opennet.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