Perl 5.44


3

Efter ett Ă„rs utveckling publicerades utgĂ„van av den nya stabila grenen av programmeringssprĂ„ket Perl — 5.44. Vid förberedelsen av den nya versionen har cirka 270 000 rader kod Ă€ndrats (utan dokumentation och automatiskt genererad kod — 110 000), Ă€ndringarna berörde 860 filer, och 71 utvecklare deltog i arbetet.

Gren 5.44 har slÀppts i enlighet med den faststÀllda utvecklingsplanen som antogs för tretton Är sedan, vilken innebÀr att nya stabila grenar slÀpps en gÄng per Är och korrigerande utgÄvor - en gÄng vart tredje mÄnad. UngefÀr en mÄnad efter slÀppet planeras den första korrigerande utgÄvan av Perl 5.44.1, dÀr de mest betydande felen som upptÀckts under implementeringen av Perl 5.44.0 kommer att ÄtgÀrdas. Samtidigt som Perl 5.44 slÀpps avbryts stödet för gren 5.40, för vilken uppdateringar endast kan slÀppas i framtiden om kritiska sÀkerhetsproblem upptÀcks. Processen har pÄbörjats för utvecklingen av den experimentella grenen 5.45, pÄ basis av vilken en stabil version av Perl 5.46 kommer att skapas under första halvan av 2027, om inte beslut fattas att övergÄ till numreringen 7.x.

Nyckel för:

  • Tillagd den experimentella möjligheten att anvĂ€nda namngivna parametrar i signaturer av funktioner, som definierar listan över variabler som överförs till funktionen, inte i funktionens kropp, utan vid dess deklaration. Den nya funktionen gör det möjligt att överföra parametrar i en icke-strikt ordning, utan i godtycklig ordning med hjĂ€lp av nyckel/vĂ€rde-par och syntaxen som vid tilldelning av element i hashar:
    • den gamla syntaksen: 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);
  • En experimentell funktion har lagts till som möjliggör anvĂ€ndning av alias (pekare pĂ„ pekare) i foreach-loopar med flera variabler. Den implementerade funktionen gör det möjligt att skapa ett alias i en foreach-loop vid samtidig hĂ€mtning av flera vĂ€rden i en iteration av loopen. Till exempel kan ett alias skapas för ett hash-element med en array nĂ€r man itererar över nycklar och vĂ€rden i hashen: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Den $key arrayen innehĂ„ller: @items"; } # Före version 5.44 skulle avavlĂ€sning krĂ€vas: foreach my ( $key, $var ) ( %hash ) { say "Den $key arrayen innehĂ„ller: @$var"; } # Utan de experimentella funktionerna refaliasing och declared_refs: foreach my $key (keys %hash) { say "Den $key arrayen innehĂ„ller: @{$hash{$key}}"; }
  • I reguljĂ€ra uttryck genomförd den experimentella lĂ€get 'enhanced_xx' som tillĂ„ter anvĂ€ndning av modifieraren /xx med teckenkategorier i hakparenteser ([a-zA-Z]) för att dela upp dem pĂ„ flera rader eller infoga kommentarer. Till exempel kan villkoret if ($text =~ m/[a-zA-Z]/) skrivas sĂ„ hĂ€r: if ($text =~ m/[ a-z # smĂ„ bokstĂ€ver A-Z # stora bokstĂ€ver ]/xx) {
  • I generatorn för pseudotillfĂ€lliga nummer anvĂ€nds systemanropet getentropy() för att fĂ„ entropi pĂ„ system som stöder detta (Linux, BSD, macOS). PĂ„ andra system uppnĂ„s entropi genom att lĂ€sa frĂ„n en enhet /dev/urandom eller genom att anvĂ€nda en hash bestĂ„ende av tid, process-ID och pekarens vĂ€rde.
  • Stöd för specifikationen har lagts till Unicode 17.0.
  • Strikta regler för Unicode har införts för identifierarnamn och grupper av reguljĂ€ra uttryck, dĂ€r cirka 160 Unicode-tecken nu Ă€r förbjudna som tidigare fick plats i w-klassen. Till exempel har latinska bokstĂ€ver i cirklar, som liknar faktiska bokstĂ€ver men inte Ă€r det, tagits bort frĂ„n w-klassens Ă„tgĂ€rd som omfattar alla bokstĂ€ver, siffror och understreck. Ändringen pĂ„verkar endast program som anvĂ€nder lĂ€get use utf8.
  • SĂ„rbarheter orsakade av buffertöverfullningar i funktionerna Perl_study_chunk (CVE-2026-8376, som uppstĂ„r i 32-bitarsbyggen) och S_measure_struct (CVE-2026-57432), samt överflödet av en 16-bitarsrĂ€knare i Regex-motorn (CVE-2026-13221), vilket kan leda till felaktig matchning av ett reguljĂ€rt uttryck.
  • AnvĂ€ndning av goto-operatorn för att hoppa till en position inom loopar och blockstrukturer Ă€r förbjuden. Denna funktionalitet förklarades som förĂ„ldrad Ă„r 2010.
  • Prestandaoptimeringar har genomförts som har accelererat addition, subtraktion och multiplikation av heltal, samt hantering av funktionssignaturer och fyllning av hash-tabeller frĂ„n nyckel/vĂ€rde-listor med strĂ€ngnycklar som Ă€r kĂ€nda vid kompilering.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster