Pas njĂ« vit zhvillim, u publikua njĂ« version i ri i qĂ«ndrueshĂ«m i gjuhĂ«s sĂ« programimit Perl â 5.44. GjatĂ« pĂ«rgatitjes sĂ« kĂ«tij publikimi, u ndryshuan rreth 270 mijĂ« rreshta kodi (pa dokumentacionin dhe kodin e gjeneruar automatikisht â 110 mijĂ«), ndryshimet preken 860 skedarĂ«, dhe nĂ« zhvillim morĂ«n pjesĂ« 71 zhvillues.
Dega 5.44 u publikua sipas njĂ« programi tĂ« miratuar 13 vjet mĂ« parĂ«, qĂ« parashikon publikimin e degĂ«ve tĂ« reja tĂ« qĂ«ndrueshme çdo vit dhe rishikimeve korrigjuese â çdo tre muaj. AfĂ«rsisht pas njĂ« muaji planifikohet publikimi i rishikimit tĂ« parĂ« korrigjues Perl 5.44.1, nĂ« tĂ« cilin do tĂ« rregullohen gabimet mĂ« tĂ« rĂ«ndĂ«sishme qĂ« u identifikuan gjatĂ« zbatimit tĂ« Perl 5.44.0. NĂ« tĂ« njĂ«jtĂ«n kohĂ« me daljen e Perl 5.44, mbĂ«shtetje pĂ«r degĂ«n 5.40 Ă«shtĂ« ndĂ«rprerĂ«, pĂ«r tĂ« cilĂ«n azhurnimet mund tĂ« lĂ«shohen nĂ« tĂ« ardhmen vetĂ«m nĂ« rast tĂ« identifikimit tĂ« problemeve kritike tĂ« sigurisĂ«. Procesi i zhvillimit tĂ« degĂ«s eksperimentale 5.45 ka filluar, mbi bazĂ«n e sĂ« cilĂ«s do tĂ« formohet njĂ« version i qĂ«ndrueshĂ«m Perl 5.46 nĂ« gjysmĂ«n e parĂ« tĂ« vitit 2027, nĂ«se nuk merret njĂ« vendim pĂ«r tĂ« kaluar nĂ« numĂ«rimin 7.x.
Ndryshimet kryesore:
- NjĂ« veçori eksperimentale Ă«shtĂ« shtuar qĂ« lejon pĂ«rdorimin e parametrave tĂ« emĂ«ruar nĂ« nĂ«nshkrimet e funksioneve, duke pĂ«rcaktuar listĂ«n e variablave qĂ« kalohen nĂ« funksion, jo nĂ« trupin e funksionit, por gjatĂ« shpalljes sĂ« tij. Kjo mundĂ«si e re lejon kalimin e parametrave jo nĂ« rend tĂ« rreptĂ«, por nĂ« rend tĂ« rastĂ«sishĂ«m duke pĂ«rdorur çiftet çelĂ«s/vlerĂ« dhe sintaksĂ«n si nĂ« pĂ«rcaktimin e elementeve nĂ« hesh: Sintaksa e vjetĂ«r: sub f { my ($x, $y) = @_; âŠ} f(1, 2); NĂ«nshkrimet: sub f ($x, $y) { ⊠} f(1, 2); NĂ«nshkrimet me parametra tĂ« emĂ«ruar: sub f (:$x, :$y) { ⊠} f(y => 2, x => 1);
- Shtesa eksperimentale për përdorimin e aliaseve (shenjuesve të shenjuesve) në ciklet foreach me disa variabla është shtuar. Funksionaliteti i realizuar mundëson krijimin e një aliasi në ciklin foreach duke nxjerrë njëkohësisht disa vlera në një iterim të ciklit. Për shembull, mund të formohet një aliast për një element hash me një array gjatë rrethimit të menjëhershëm të çelësave dhe vlerave të hash-it: use v5.44; use feature qw(refaliasing declared_refs); my %hash = ( one => [1], two => [2, 2], ); foreach my ($key, \@items) (%hash) { say "Array $key përmban: @items"; } # Para versionit 5.44, do të duhej të kryhej zhbllokimi: foreach my ($key, $var) (%hash) { say "Array $key përmban: @$var"; } # Pa mundësitë eksperimentale refaliasing dhe declared_refs: foreach my $key (keys %hash) { say "Array $key përmban: @{$hash{$key}}"; }
- NĂ« shprehjet e rregullta, Ă«shtĂ« realizuar njĂ« mod eksperimentale âenhanced_xxâ, i cili lejon pĂ«rdorimin e modifikatorit «/xx» me klasat e simboleve nĂ« kĂ«ndet katrore ([a-zA-Z]) pĂ«r tâi ndarĂ« ato nĂ« disa rreshta ose pĂ«r tâi shtuar komente. PĂ«r shembull, kushti «if ($text =~ m/[a-zA-Z]/){» mund tĂ« formalizohet kĂ«shtu: if ($text =~ m/[ a-z # shkronjat e vogla A-Z # shkronjat e mĂ«dha ]/xx) {
- Në gjeneratoret e numrave aleatorë, për të siguruar entropinë, përdoret thirrja sistematike getentropy() në sistemet që e mbështesin atë (Linux, BSD, macOS). Në sistemet e tjera, entropia sigurohet përmes leximit nga pajisja /dev/urandom ose përdorimit të një hash nga koha, identifikuesi i procesit dhe vlera e treguesit.
- Shtuar përkrahja për specifikimin Unicode 17.0.
- Siguruar përputhshmëri të rreptë me rregullat Unicode për emrat e identifikuesve dhe grupet e shprehjeve të rregullta, në të cilat tani ndalohet përdorimi i rreth 160 simboleve Unicode, të cilat më parë përfshiheshin në klasën '\w'. Për shembull, shkronjat latine në rreth, të cilat duken si shkronjat reale, por nuk janë, janë hequr nga veprimi i klasës '\w', e cila përfshinte të gjitha shkronjat, numrat dhe simbolin e theksit. Ndryshimi i sjelljes prek vetëm programet që përdorin modin 'use utf8'.
- Eliminuar vulnerabilitetet e shkaktuara nga mbingopjet në funksionet Perl_study_chunk (CVE-2026-8376, e cila shfaqet në ndërtimet 32-bithëshe) dhe S_measure_struct (CVE-2026-57432), si dhe mbingopja e numëruesit 16-bithësh në motorin Regex (CVE-2026-13221), e cila mund të çojë në aktivizimin e gabuara të shprehjes së rregullt.
- Përdorimi i operatorit goto për kalimin në pozita brenda cikleve dhe strukturave blloku është i ndaluar. Kjo mundësi u shpall e vjetruar në vitin 2010.
- Janë kryer optimizime në performancë që përshpejtojnë operacionet e shtimit, zbritjes dhe shumëzimit të numrave të plotë, përpunimin e nënshkrimeve të funksioneve dhe mbushjen e hash-eve nga lista në format çelës/vlerë me çelësa string të njohur në fazën e kompilanimit.
Burimi: opennet.ru
