Perl 5.44


3

Etter ett års utvikling publisert utgjeving av den nye stabile greina av programmeringsspråket Perl — 5.44. Under forberedelsane til den nye utgåva blei om lag 270 000 linjer med kode endra (utan dokumentasjon og automatisk generert kode — 110 000), og endringane omfatta 860 filer, med 71 utviklarar som deltok i utviklinga.

Greina 5.44 blei lansert i samsvar med den fastsette utviklingsplanen som blei godkjent for tretten år sidan, som inneber utgjeving av nye stabile greiner ein gong i året og korrigerande utgåver kvart tredje månad. Den første korrigerande utgåva Perl 5.44.1 planleggast å bli lansert om om lag ein månad, der dei mest signifikante feila som har blitt avdekt i implementeringsprosessen av Perl 5.44.0 vil bli retta. Samtidig som Perl 5.44 blir lansert, blir støtta for greina 5.40 avslutta, og oppdateringar for denne vil berre bli utgitt i framtida dersom det vert avdekt kritiske sikkerheitsproblem. Utviklingsprosessen for den eksperimentelle greina 5.45 har byrja, basert på den som vil danne den stabile utgåva Perl 5.46 i første halvdel av 2027, med mindre det blir teke ei avgjerd for å gå til versjonsnummer 7.x.

Nøkkelfunksjoner endringer:

  • Lagt til den eksperimentelle moglegheita for bruk av namngitte parameter i signaturar for funksjonar, som definerer lista over variablane som blir sende til funksjonen, ikkje i kroppen av funksjonen, men ved erklæringa. Den nye funksjonen gjer det mogleg å sende parameterar i vilkårleg rekkefølge ved hjelp av nøkkel/verdi-par og syntaks liksom ved tildeling av element i hashar:
    • gammal syntaks: sub f { my ($x, $y) = @_; …} f(1, 2);
    • signaturar: sub f ($x, $y) { … } f(1, 2);
    • signaturar med namngitte parameter: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • En eksperimentell mulighet for å bruke aliaser (pekere til pekere) i foreach-løkker med flere variabler er lagt til. Den implementerte muligheten tillater å opprette et alias i foreach-løkken samtidig som flere verdier hentes ut i én iterasjon av løkken. For eksempel kan man danne et alias for et hash-element med en matrise mens man går gjennom nøklene og verdiene 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-matrisen inneholder: @items"; } # Før versjon 5.44 ville det vært nødvendig å utføre avdereferering: foreach my ( $key, $var ) ( %hash ) { say "Den $key-matrisen inneholder: @$var"; } # Uten de eksperimentelle funksjonene refaliasing og declared_refs: foreach my $key (keys %hash) { say "Den $key-matrisen inneholder: @{$hash{$key}}"; }
  • I regulære uttrykk implementert den eksperimentelle modusen ‘enhanced_xx’, som gjør det mulig å bruke modifikatoren /xx med tegnklasser i firkantede parenteser ([a-zA-Z]) for å dele dem opp i flere linjer eller for å sette inn kommentarer. For eksempel kan betingelsen if ($text =~ m/[a-zA-Z]/) skrives som: if ($text =~ m/[ a-z # små bokstaver A-Z # store bokstaver ]/xx) {
  • I generatoren for pseudotilfeldige tall blir systemanropet getentropy() brukt for å hente entropi på systemer som støtter det (Linux, BSD, macOS). På andre systemer hentes entropi ved å lese fra /dev/urandom eller bruke en hash av tid, prosess-id og pekerens verdi.
  • Støtte for spesifikasjonen Unicode 17.0.
  • Det er sikret streng overholdelse av Unicode-reglene for identifikatornavn og grupper av regulære uttrykk, der det nå er forbudt å bruke rundt 160 Unicode-tegn som tidligere falt inn under klassen w. For eksempel er latinske bokstaver i sirkler, som ligner ekte bokstaver, men som ikke er det, fjernet fra virkningen av klasse w, som omfattet alle bokstaver, siffer og understrekingstegn. Denne endringen i atferd påvirker bare programmer som bruker modus use utf8.
  • Sårbarheter forårsaket av bufferoverskridelser i funksjonene Perl_study_chunk (CVE-2026-8376, som viser seg i 32-bits bygg) og S_measure_struct (CVE-2026-57432), samt overflow av 16-bits telleren i Regex-motoren (CVE-2026-13221), som kan føre til feilaktig aktivering av regulære uttrykk.
  • Det er ikke lov å bruke goto-operatøren for å hoppe til en posisjon inne i løkker og blokker. Denne muligheten ble erklært foreldet i 2010.
  • Det er gjennomført ytelsesoptimaliseringer som har akselerert operasjonene for addisjon, subtraksjon og multiplikasjon av heltall, samt behandling av funksjonssignaturer og utfylling av hasher fra lister i nøkkel/verdi-format med kjente strengenøkler som er angitt på kompileringstidspunktet.

Kilde: linux.org.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster