Perl 5.44


3

Po roku vývoja zverejnená vydanie novej stabilnej vetvy programovacieho jazyka Perl - 5.44, na príprava V novej verzii sa zmenilo približne 270 000 riadkov kódu (okrem dokumentácie a automaticky generovaného kódu – 110 000), zmeny sa dotkli 860 súborov a na vývoji sa podieľalo 71 vývojárov.

Vetva 5.44 bola vydaná v súlade s fixným vývojovým harmonogramom stanoveným pred trinástimi rokmi, ktorý predpokladá vydávanie nových stabilných vetiev raz ročne a menších vydaní každé tri mesiace. Prvé menšie vydanie, Perl 5.44.1, je naplánované na vydanie približne o mesiac a opraví najvýznamnejšie chyby objavené počas implementácie Perlu 5.44.0. S vydaním Perlu 5.44 sa skončila aj podpora vetvy 5.40; aktualizácie pre ňu môžu byť v budúcnosti vydané iba v prípade zistenia kritických bezpečnostných problémov. Začalo proces vývoja experimentálnej vetvy 5.45, ktorá bude základom pre stabilné vydanie Perlu 5.46 v prvej polovici roku 2027, pokiaľ nebude prijaté rozhodnutie prejsť k číslovaniu 7.x.

Kľúč zmeny:

  • Pridané experimentálna možnosť použitia pomenovaných parametrov v podpisy Funkcie, ktoré definujú zoznam premenných odovzdávaných funkcii nie v tele funkcie, ale počas jej deklarácie. Táto nová funkcia umožňuje odovzdávať parametre nie v striktnom poradí, ale v ľubovoľnom poradí, pomocou párov kľúč/hodnota a syntaxe podobnej priraďovaniu prvkov v hašoch:
    • stará syntax: sub f { my ($x, $y) = @_; …} f(1, 2);
    • podpisy: sub f ($x, $y) { … } f(1, 2);
    • podpisy s pomenovanými parametrami: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Pridaná experimentálna podpora pre používanie aliasov (ukazovateľov na ukazovatele) v cykloch foreach s viacerými premennými. Táto funkcia umožňuje vytvoriť alias v cykle foreach pri načítaní viacerých hodnôt v jednej iterácii cyklu. Napríklad môžete vytvoriť alias pre hash element s poľom pri iterácii cez kľúče aj hodnoty hash: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "Pole $key obsahuje: @items"; } # Pred verziou 5.44 bolo potrebné dereferencovanie: foreach my ( $key, $var ) ( %hash ) { say "Pole $key obsahuje: @$var"; } # Bez experimentálneho refliasingu a funkcií declared_refs: foreach my $key (keys %hash) { say "Pole $key obsahuje: @{$hash{$key}}"; }
  • V regulárnych výrazoch implementovaná Experimentálny režim „enhanced_xx“ umožňuje použiť modifikátor /xx s triedami znakov v hranatých zátvorkách ([a-zA-Z]) na ich rozdelenie na viacero riadkov alebo na vloženie komentárov. Napríklad podmienka if ($text =~ m/[a-zA-Z]/){ by sa dala zapísať ako: if ($text =~ m/[ a-z # malé písmená A-Z # veľké písmená ]/xx) {
  • Generátor pseudonáhodných čísel používa systémové volanie getentropy() na získanie entropie na systémoch, ktoré ju podporujú (LinuxBSD, macOS). Na iných systémoch sa entropia získava čítaním zo zariadenia /dev/urandom alebo použitím hashu času, ID procesu a hodnoty ukazovateľa.
  • Pridaná podpora špecifikácií Unicode 17.0.
  • Pre názvy identifikátorov a skupiny regulárnych výrazov bolo zabezpečené prísne dodržiavanie pravidiel Unicode, pričom približne 160 znakov Unicode, ktoré predtým pokrývala trieda w, je teraz zakázaných. Napríklad trieda w, ktorá pokrýva všetky písmená, číslice a znak podčiarkovníka, teraz vylučuje zakrúžkované latinské písmená, ktoré sa podobajú skutočným písmenám, ale nie sú nimi. Táto zmena správania ovplyvňuje iba programy používajúce režim utf8.
  • Opravené zraniteľnosti spôsobené pretečením vyrovnávacej pamäte vo funkciách Perl_study_chunk (CVE-2026 8376,, zobrazuje sa v 32-bitových zostavách) a S_measure_struct (CVE-2026 57432,), ako aj pretečenie 16-bitového počítadla v regexovom engine (CVE-2026 13221,), čo môže spôsobiť zlyhanie regulárneho výrazu.
  • Skákanie na pozície v rámci slučiek a blokových konštruktov pomocou operátora goto je zakázané. Táto funkcia bola v roku 2010 ukončená.
  • Boli vykonané optimalizácie výkonu na zrýchlenie sčítania, odčítania a násobenia celých čísel, spracovania podpisov funkcií a napĺňania hašov zo zoznamov kľúčov/hodnot reťazcovými kľúčmi známymi v čase kompilácie.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster