Perl 5.44 programmeringsspråk tilgjengelig

Etter et år med utvikling er den nye stabile grenen av programmeringsspråket Perl, versjon 5.44, utgitt. I forberedelsene til den nye utgivelsen ble omtrent 270 000 kodelinjer endret (unntatt dokumentasjon og automatisk generert kode – 110 000 linjer), noe som påvirket 860 filer, og 71 utviklere bidro til utviklingen.

5.44-grenen er 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. Sammen 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. Utviklingen har startet på den eksperimentelle 5.45-grenen, som vil danne grunnlaget for den stabile utgivelsen Perl 5.46 i første halvdel av 2027, med mindre det tas en beslutning om å bytte til 7.x-versjonsnummereringen.

Viktige endringer:

  • La til eksperimentell funksjonalitet for å bruke navngitte parametere i funksjonssignaturer. Disse parameterne definerer listen over variabler som sendes til funksjonen, ikke i funksjonsdelen, men under deklarasjonen. Den nye funksjonaliteten tillater sending av parametere ikke i streng rekkefølge, men i hvilken som helst rekkefølge ved bruk av nøkkel/verdi-par og 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}}"; }
  • Regulære uttrykk har nå en eksperimentell «enhanced_xx»-modus, som 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 støtte for Unicode 17.0-spesifikasjonen.
  • Streng overholdelse av Unicode-regler er sikret for identifikatornavn og regulære uttrykksgrupper, med omtrent 160 Unicode-tegn som tidligere var dekket av klassen "\w" nå forbudt. For eksempel ekskluderer klassen "\w", som dekker alle bokstaver, sifre og understrekningstegnet, nå omringede latinske bokstaver, som ligner faktiske bokstaver, men ikke er det. Denne endringen påvirker bare programmer som bruker modusen "bruk utf8".
  • Fikset sårbarheter for bufferoverløp i funksjonene Perl_study_chunk (CVE-2026-8376, som påvirker 32-bits bygg) og S_measure_struct (CVE-2026-57432), samt en 16-bits telleroverløp i Regex-motoren (CVE-2026-13221), som kunne føre til feil utførelse av et regulært uttrykk.
  • 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: opennet.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