Perl 5.44


3

Etter et år med utvikling publisert utgivelse av en ny stabil gren av programmeringsspråket Perl - 5.44. ved forbereder Den nye utgivelsen endret omtrent 270 000 kodelinjer (unntatt dokumentasjon og automatisk generert kode - 110 000), endringene påvirket 860 filer, og 71 utviklere deltok i utviklingen.

5.44-grenen har blitt utgitt i samsvar med den faste utviklingsplanen som ble etablert for tretten år siden, som innebærer utgivelse av nye stabile grener én gang i året og mindre utgivelser hver tredje måned. Den første mindre utgivelsen, Perl 5.44.1, er planlagt utgitt om omtrent en måned, og vil fikse de viktigste feilene som ble oppdaget under implementeringen av Perl 5.44.0. Med utgivelsen av Perl 5.44 er støtten for 5.40-grenen avsluttet; oppdateringer for den kan bli utgitt i fremtiden bare hvis kritiske sikkerhetsproblemer oppdages. Har begynt utviklingsprosessen for den eksperimentelle 5.45-grenen, som vil være grunnlaget for den stabile utgivelsen av Perl 5.46 i første halvdel av 2027, med mindre en avgjørelse tas gå over til nummerering 7.x.

Nøkkel endringer:

  • La til eksperimentell mulighet for å bruke navngitte parametere i signaturer Funksjoner som definerer listen over variabler som sendes til funksjonen, ikke i funksjonsdelen, men under deklarasjonen. Denne nye funksjonen tillater at parametere sendes i en hvilken som helst rekkefølge, ikke i en streng rekkefølge, ved hjelp av nøkkel-/verdipar og en syntaks som ligner på å tilordne elementer i hasher:
    • gammel syntaks: sub f { my ($x, $y) = @_; …} f(1, 2);
    • signaturer: sub f ($x, $y) { … } f(1, 2);
    • signaturer med navngitte parametere: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • La til eksperimentell støtte for bruk av aliaser (pekere til pekere) i foreach-løkker med flere variabler. Denne funksjonen lar deg opprette et alias i en foreach-løkke når du henter flere verdier i en enkelt løkkeiterasjon. For eksempel kan du opprette et alias for et hash-element med en array når du itererer over både nøklene og verdiene til hashen: use v5.44; use feature qw(refaliasing declared_refs); my %hash = (one => [1], two => [2, 2],); foreach my ( $key, @items ) ( %hash ) { say "$key-arrayet inneholder: @items"; } # Før versjon 5.44 ville dereferansering være nødvendig: foreach my ( $key, $var ) ( %hash ) { say "$key-arrayet inneholder: @$var"; } # Uten eksperimentell refaliasing og declared_refs-funksjoner: foreach my $key (keys %hash) { say "$key-arrayet inneholder: @{$hash{$key}}"; }
  • I regulære uttrykk implementert Den eksperimentelle modusen «enhanced_xx» lar modifikatoren /xx brukes med tegnklasser i hakeparenteser ([a-zA-Z]) for å dele dem over 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) {
  • Pseudo-tilfeldige tallgeneratoren bruker systemkallet getentropy() for å finne entropi på systemer som støtter den (Linux, BSD, macOSPå andre systemer oppnås entropi ved å lese fra /dev/urandom-enheten eller ved å bruke en hash av tiden, prosess-ID-en og pekerverdien.
  • Lagt til spesifikasjonsstøtte Unicode 17.0.
  • Streng overholdelse av Unicode-regler er sikret for identifikatornavn og regulære uttrykksgrupper, og omtrent 160 Unicode-tegn som tidligere var dekket av w-klassen er nå forbudt. For eksempel ekskluderer w-klassen, som dekker alle bokstaver, sifre og understrekningstegnet, nå sirklede latinske bokstaver, som ligner på faktiske bokstaver, men ikke er det. Denne endringen påvirker bare programmer som bruker utf8-modus.
  • Rettet sårbarheter forårsaket av bufferoverløp i Perl_study_chunk-funksjonene (CVE-2026-8376, vises i 32-bits samlinger) og S_measure_struct (CVE-2026-57432), samt overløp av 16-bits telleren i Regex-motoren (CVE-2026-13221), noe som kan føre til at det regulære uttrykket feiler.
  • Det er forbudt å hoppe til posisjoner i løkker og blokkkonstruksjoner ved bruk av goto-operatoren. Denne funksjonen ble avviklet i 2010.
  • Ytelsesoptimaliseringer ble gjort for å øke hastigheten på heltallsaddisjon, subtraksjon og multiplikasjon, behandling av funksjonssignaturer og utfylling av hasher fra nøkkel-/verdilister med strengnøkler som er kjent på kompileringstidspunktet.

Kilde: linux.org.ru

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