Perl 5.44


3

Po roce vývoje publikováno vydání nové stabilní větve programovacího jazyka Perl - 5.44. S připravuje se Nová verze změnila přibližně 270 000 řádků kódu (bez dokumentace a automaticky generovaného kódu – 110 000), změny se dotkly 860 souborů a na vývoji se podílelo 71 vývojářů.

Větev 5.44 byla vydána v souladu s pevným vývojovým harmonogramem stanoveným před třinácti lety, který požaduje vydávání nových stabilních větví jednou ročně a menších verzí každé tři měsíce. Vydání první menší verze, Perl 5.44.1, je naplánováno na přibližně měsíc a opraví nejvýznamnější chyby objevené během implementace Perlu 5.44.0. S vydáním Perlu 5.44 skončila podpora větve 5.40; aktualizace pro ni mohou být v budoucnu vydány pouze v případě zjištění kritických bezpečnostních problémů. Začal proces vývoje experimentální větve 5.45, která bude základem pro stabilní vydání Perlu 5.46 v první polovině roku 2027, pokud nebude učiněno rozhodnutí pojď k číslování 7.x.

Klíč změny:

  • Přidal experimentální možnost použití pojmenovaných parametrů v podpisy Funkce, které definují seznam proměnných předávaných funkci nikoli v těle funkce, ale během její deklarace. Tato nová funkce umožňuje předávat parametry nikoli v striktním pořadí, ale v libovolném pořadí, pomocí párů klíč/hodnota a syntaxe podobné přiřazování prvků v hash:
    • stará syntaxe: sub f { my ($x, $y) = @_; …} f(1, 2);
    • signatury: sub f ($x, $y) { … } f(1, 2);
    • podpisy s pojmenovanými parametry: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Přidána experimentální podpora pro používání aliasů (ukazatelů na ukazatele) ve smyčkách foreach s více proměnnými. Tato funkce umožňuje vytvořit alias ve smyčce foreach při načítání více hodnot v jedné iteraci smyčky. Například můžete vytvořit alias pro hash element s polem při iteraci přes klíče i hodnoty hashe: 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"; } # Před verzí 5.44 by bylo vyžadováno dereferencování: foreach my ( $key, $var ) ( %hash ) { say "Pole $key obsahuje: @$var"; } # Bez experimentálního refaliasingu a funkcí declared_refs: foreach my $key (keys %hash) { say "Pole $key obsahuje: @{$hash{$key}}"; }
  • V regulárních výrazech implementováno Experimentální režim „enhanced_xx“ umožňuje použití modifikátoru /xx s třídami znaků v hranatých závorkách ([a-zA-Z]) k jejich rozdělení na více řádků nebo k vložení komentářů. Například podmínka if ($text =~ m/[a-zA-Z]/){ by mohla být zapsána jako: if ($text =~ m/[ a-z # malá písmena A-Z # velká písmena ]/xx) {
  • Generátor pseudonáhodných čísel používá systémové volání getentropy() k získání entropie na systémech, které ji podporují (LinuxBSD, macOS). Na jiných systémech se entropie získává čtením ze zařízení /dev/urandom nebo pomocí hashu času, ID procesu a hodnoty ukazatele.
  • Přidána podpora specifikací Unicode 17.0.
  • Pro názvy identifikátorů a skupiny regulárních výrazů bylo zajištěno přísné dodržování pravidel Unicode, přičemž přibližně 160 znaků Unicode, které dříve pokrývala třída w, je nyní zakázáno. Například třída w, která zahrnuje všechna písmena, číslice a znak podtržítka, nyní vylučuje zakroužkovaná latinská písmena, která se podobají skutečným písmenům, ale ve skutečnosti jimi nejsou. Tato změna chování ovlivňuje pouze programy používající režim utf8.
  • Opraveny zranitelnosti způsobené přetečením vyrovnávací paměti ve funkcích Perl_study_chunk (CVE-2026-8376, objevuje se v 32bitových sestavách) a S_measure_struct (CVE-2026-57432), stejně jako přetečení 16bitového čítače v regexovém enginu (CVE-2026-13221), což může způsobit selhání regulárního výrazu.
  • Skákání na pozice v rámci smyček a blokových konstrukcí pomocí operátoru goto je zakázáno. Tato funkce byla v roce 2010 ukončena.
  • Byly provedeny optimalizace výkonu pro urychlení sčítání, odčítání a násobení celočíselných operací, zpracování podpisů funkcí a naplňování hashů ze seznamů klíčů/hodnot řetězcovými klíči známými v době kompilace.

Zdroj: linux.org.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster