Perl 5.44


3

Nakon godinu dana razvoja objavljen izdanje nove stabilne grane programskog jezika Perl - 5.44... Kada priprema Novo izdanje promijenilo je otprilike 270 000 redaka koda (isključujući dokumentaciju i automatski generirani kod - 110 000), promjene su utjecale na 860 datoteka, a u razvoju je sudjelovao 71 programer.

Grana 5.44 objavljena je u skladu s fiksnim rasporedom razvoja utvrđenim prije trinaest godina, koji predviđa izdavanje novih stabilnih grana jednom godišnje i manjih izdanja svaka tri mjeseca. Prvo manje izdanje, Perl 5.44.1, planirano je za izdanje za otprilike mjesec dana, ispravljajući najznačajnije greške otkrivene tijekom implementacije Perla 5.44.0. Izlaskom Perla 5.44, završena je podrška za granu 5.40; ažuriranja za nju mogu se izdati u budućnosti samo ako se otkriju kritični sigurnosni problemi. Počelo je proces razvoja eksperimentalne grane 5.45, koja će biti osnova za stabilno izdanje Perla 5.46 u prvoj polovici 2027., osim ako se ne donese odluka Pređi numeriranju 7.x.

Ključ promjena:

  • Dodano eksperimentalna mogućnost korištenja imenovanih parametara u potpisi Funkcije koje definiraju popis varijabli koje se prosljeđuju funkciji ne u tijelu funkcije, već tijekom njezine deklaracije. Ova nova značajka omogućuje prosljeđivanje parametara ne strogo određenim redoslijedom, već bilo kojim redoslijedom, koristeći parove ključ/vrijednost i sintaksu sličnu dodjeljivanju elemenata u hashovima:
    • stara sintaksa: sub f { my ($x, $y) = @_; …} f(1, 2);
    • potpisi: sub f ($x, $y) { … } f(1, 2);
    • potpisi s imenovanim parametrima: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Dodana je eksperimentalna podrška za korištenje aliasa (pokazivača na pokazivače) u foreach petljama s više varijabli. Ova značajka omogućuje vam stvaranje aliasa u foreach petlji prilikom dohvaćanja više vrijednosti u jednoj iteraciji petlje. Na primjer, možete stvoriti alias za hash element s nizom prilikom iteracije preko ključeva i vrijednosti hash-a: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Niz $key sadrži: @items"; } # Prije verzije 5.44 bilo bi potrebno dereferenciranje: foreach my ( $key, $var ) ( %hash ) { say "Niz $key sadrži: @$var"; } # Bez eksperimentalnog refaliasiranja i značajki declared_refs: foreach my $key (keys %hash) { say "Niz $key sadrži: @{$hash{$key}}"; }
  • U regularnim izrazima implementiran Eksperimentalni način rada 'enhanced_xx' omogućuje korištenje modifikatora /xx s klasama znakova u uglatim zagradama ([a-zA-Z]) za njihovo dijeljenje u više redaka ili za umetanje komentara. Na primjer, uvjet if ($text =~ m/[a-zA-Z]/){ mogao bi se napisati kao: if ($text =~ m/[ a-z # mala slova A-Z # velika slova ]/xx) {
  • Generator pseudoslučajnih brojeva koristi sistemski poziv getentropy() za dobivanje entropije na sustavima koji ga podržavaju (LinuxBSD macOS). Na drugim sustavima, entropija se dobiva čitanjem s uređaja /dev/urandom ili korištenjem sažetka vremena, ID-a procesa i vrijednosti pokazivača.
  • Dodana podrška za specifikacije Unicode 17.0.
  • Strogo pridržavanje Unicode pravila osigurano je za nazive identifikatora i grupe regularnih izraza, s otprilike 160 Unicode znakova koje je prethodno pokrivala klasa w sada je zabranjeno. Na primjer, klasa w, koja pokriva sva slova, znamenke i znak podvlake, sada isključuje zaokružena latinična slova koja nalikuju stvarnim slovima, ali nisu. Ova promjena ponašanja utječe samo na programe koji koriste način rada utf8.
  • Ispravljene ranjivosti uzrokovane prelijevanjem međuspremnika u funkcijama Perl_study_chunk (CVE-2026-8376, pojavljuje se u 32-bitnim sklopovima) i S_measure_struct (CVE-2026-57432), kao i prelijevanje 16-bitnog brojača u Regex mehanizmu (CVE-2026-13221), što može uzrokovati neuspjeh regularnog izraza.
  • Skakanje na pozicije unutar petlji i blok konstrukcija pomoću operatora goto je zabranjeno. Ova je značajka ukinuta 2010. godine.
  • Optimizacije performansi su napravljene kako bi se ubrzalo zbrajanje, oduzimanje i množenje cijelih brojeva, obrada potpisa funkcija i popunjavanje hashova iz popisa ključ/vrijednost s ključevima stringova poznatim u vrijeme kompajliranja.

Izvor: linux.org.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster