Apre yon ane nan devlopman pibliye lage yon nouvo branch ki estab nan langaj pwogram Perl - 5.44... Kilè prepare Nouvo vèsyon an chanje apeprè 270 liy kòd (san konte dokimantasyon ak kòd ki pwodui otomatikman - 110), chanjman yo afekte 860 dosye, epi 71 devlopè te patisipe nan devlopman an.
Yo pibliye branch 5.44 la dapre kalandriye devlopman fiks ki te etabli trèzan de sa, ki prevwa pou yo pibliye nouvo branch ki estab yon fwa pa ane ak vèsyon minè chak twa mwa. Yo prevwa pou yo pibliye premye vèsyon minè a, Perl 5.44.1, nan apeprè yon mwa, pou korije pi gwo pinèz yo te dekouvri pandan aplikasyon Perl 5.44.0 la. Avèk lansman Perl 5.44 la, sipò pou branch 5.40 la fini; yo ka pibliye mizajou pou li nan lavni sèlman si yo dekouvri pwoblèm sekirite kritik. Te kòmanse pwosesis devlopman branch eksperimantal 5.45 la, ki pral baz pou lage Perl 5.46 ki estab nan premye mwatye 2027 la, sof si yo pran yon desizyon. ale sou rive nan nimewo 7.x.
Kle chanjman:
- Te ajoute posiblite eksperimantal pou itilize paramèt ki gen non nan siyati Fonksyon ki defini lis varyab yo pase nan fonksyon an pa nan kò fonksyon an, men pandan deklarasyon li. Nouvo karakteristik sa a pèmèt paramèt yo pase pa nan yon lòd strik, men nan nenpòt lòd, lè l sèvi avèk pè kle/valè ak yon sentaks ki sanble ak asiyen eleman nan hach:
- ansyen sentaks: sub f { my ($x, $y) = @_; âŚ} f(1, 2);
- siyati: sub f ($x, $y) { ⌠} f(1, 2);
- siyati ak paramèt ki gen non: sub f (:$x, :$y) { ⌠} f(y => 2, x => 1);
- Te ajoute sipò eksperimantal pou itilize alyas (pwent pou pwentè) nan bouk foreach ak plizyè varyab. Fonksyonalite sa a pèmèt ou kreye yon alyas nan yon bouk foreach lè w ap rekipere plizyè valè nan yon sèl iterasyon bouk. Pa egzanp, ou ka kreye yon alyas pou yon eleman hach ââak yon etalaj lè w ap iterasyon sou tou de kle yo ak valè hach ââla: itilize v5.44; itilize fonksyon qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ($key, @items ) ( %hash ) { di "Etalaj $key la genyen: @items"; } # Anvan vèsyon 5.44, yo ta bezwen dereferans: foreach my ($key, $var ) ( %hash ) { di "Etalaj $key la genyen: @$var"; } # San refliasing eksperimantal ak karakteristik declared_refs: foreach my $key (keys %hash) { say "Tablo $key la genyen: @{$hash{$key}}"; }
- Nan ekspresyon regilye yo aplike Mòd eksperimantal 'enhanced_xx' la pèmèt yo itilize modifikatè /xx la avèk klas karaktè nan parantèz kare ([a-zA-Z]) pou divize yo sou plizyè liy oubyen pou mete kòmantè. Pa egzanp, kondisyon if ($text =~ m/[a-zA-Z]/){ la te kapab ekri konsa: if ($text =~ m/[ a-z # lèt miniskil A-Z # lèt majiskil ]/xx) {
- Jeneratè nimewo pseudo-aleatwa a itilize apèl sistèm getentropy() la pou jwenn entropi sou sistèm ki sipòte li (Linux, BSD, macOS). Sou lòt sistèm yo, yo jwenn entropi a lè yo li nan aparèy /dev/urandom nan oubyen lè yo itilize yon chif ki gen ladan l tan an, ID pwosesis la, ak valè pwentè a.
- Te ajoute sipò spesifikasyon Unicode 17.0.
- Yo asire yon respè strik pou règ Unicode yo pou non idantifikatè yo ak gwoup ekspresyon regilye yo, ak apeprè 160 karaktè Unicode ki te kouvri anvan pa klas w la kounye a entèdi. Pa egzanp, klas w la, ki kouvri tout lèt, chif, ak karaktè souliyman an, kounye a eskli lèt laten ki antoure ak sèk yo, ki sanble ak lèt ââreyèl men ki pa sanble ak yo. Chanjman konpòtman sa a sèlman afekte pwogram ki itilize mòd utf8 la.
- Yo korije vilnerabilite ki te koze pa debòde memwa tanpon nan fonksyon Perl_study_chunk yo (CVE-2026-8376, parèt nan asanblaj 32-bit) ak S_measure_struct (CVE-2026-57432), ansanm ak debòdman kontè 16-bit la nan motè Regex la (CVE-2026-13221), sa ki ka lakòz ekspresyon regilye a echwe.
- Li entèdi pou chanje pozisyon nan bouk ak blòk avèk operatè goto a. Yo te retire fonksyonalite sa a nan lane 2010.
- Yo te fè optimizasyon pèfòmans pou akselere adisyon, soustraksyon ak miltiplikasyon nonb antye relatif, pwosesis siyati fonksyon, ak ranpli hach ââki soti nan lis kle/valè ak kle chèn ke yo te konnen nan moman konpilasyon an.
Sous: linux.org.ru
