Perl 5.44


3

Pas një viti zhvillimi u publikua lëshimi i degës së re të programimit Perl - 5.44. Gjatë përgatitjes për lëshimin e ri u ndryshuan rreth 270 mijë rreshta kodi (pa dokumentacionin dhe kodin e gjeneruar automatikisht - 110 mijë), ndryshimet prekun 860 skedarë, dhe në zhvillim morën pjesë 71 zhvillues.

Dega 5.44 u lëshua sipas një kalendari të miratuar 13 vjet më parë, i cili parashikon lëshimin e degëve të reja të qëndrueshme çdo vit dhe lëshime korrigjues çdo tre muaj. Rreth një muaj pas këtij lëshimi, planifikohet që të lëshohet lëshimi korrigjues i parë Perl 5.44.1, në të cilin do të rregullohen gabimet më të mëdha të zbuluara gjatë implementimit të Perl 5.44.0. Po ashtu, me daljen e Perl 5.44 mbështetja për degën 5.40 ka mbaruar, për të cilën përditësime mund të lëshohen në të ardhmen vetëm në rast se zbulohen probleme kritike me sigurinë. Ka filluar procesi i zhvillimit të degës eksperimentale 5.45, mbi të cilën në gjysmën e parë të vitit 2027 do të formohet një lëshim i stabilizuar i Perl 5.46, nëse nuk merret vendim për t'u kaluar në numerimin 7.x.

Karakteristikat kryesore ndryshime:

  • Shtuar mundĂ«sia eksperimentale pĂ«r tĂ« pĂ«rdorur parametra tĂ« emĂ«ruar nĂ« nĂ«nshkrimet e funksioneve, qĂ« pĂ«rcaktojnĂ« listĂ«n e variablave tĂ« kaluara nĂ« funksion jo nĂ« trupin e funksionit, por gjatĂ« shpalljes sĂ« tij. Kjo mundĂ«si e re lejon kalimin e parametra jo nĂ« rend tĂ« rreptĂ«, por nĂ« njĂ« rend tĂ« lirĂ« duke pĂ«rdorur çiftet çelĂ«s/vlerĂ« dhe sintaksĂ«n siç Ă«shtĂ« caktimi i elementeve nĂ« hash:
    • sintaksa e vjeter: 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);
  • ËshtĂ« shtuar njĂ« mundĂ«si eksperimantale pĂ«r tĂ« pĂ«rdorur aliase (shenjat e treguesit) nĂ« ciklet foreach me disa ŰȘŰșÙŠŰ±Ű§Űš. MundĂ«sia e implementuar lejon krijimin e njĂ« aliasi nĂ« ciklin foreach gjatĂ« marrjes sĂ« menjĂ«hershme tĂ« disa vlerave nĂ« njĂ« iteracion tĂ« vetĂ«m tĂ« ciklit. PĂ«r shembull, mund tĂ« formohet njĂ« alias pĂ«r njĂ« element hash me njĂ« array gjatĂ« kalimit tĂ« njĂ«kohshĂ«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 "Arrayi $key pĂ«rmban: @items"; } # Para versionit 5.44 duhet tĂ« ekzekutohej derefencing: foreach my ( $key, $var ) ( %hash ) { say "Arrayi $key pĂ«rmban: @$var"; } # Pa mundĂ«sitĂ« eksperimantale refaliasing dhe declared_refs: foreach my $key (keys %hash) { say "Arrayi $key pĂ«rmban: @{$hash{$key}}"; }
  • NĂ« shprehjet e rregullta Ă«shtĂ« implementuar modi eksperimantal 'enhanced_xx', i cili lejon pĂ«rdorimin e modifikuesit /xx me klasat e simboleve nĂ« kllapa katrore ([a-zA-Z]) pĂ«r t'i ndarĂ« ato nĂ« disa rreshta ose pĂ«r tĂ« vendosur komente. PĂ«r shembull, kushti if ($text =~ m/[a-zA-Z]/) mund tĂ« formohet kĂ«shtu: if ($text =~ m/[ a-z # shkronjat e vogla A-Z # shkronjat e mĂ«dha ]/xx) {
  • NĂ« gjeneratorin e numrave pseudo-tĂ« rastit, pĂ«r tĂ« fituar entropi pĂ«rdoret thirrja sistemike getentropy() nĂ« sistemet qĂ« e mbĂ«shtesin (Linux, BSD, macOS). NĂ« sistemet e tjera, pĂ«r tĂ« fituar entropi, bĂ«het lexim nga paisja /dev/urandom ose pĂ«rdorimi i hashes nga koha, identifikatori i procesit dhe vlera e treguesit.
  • Shtuar pĂ«rkrahja pĂ«r specifikimin Unicode 17.0.
  • Shtrohet njĂ« zbatim i rreptĂ« i rregullave tĂ« Unicode pĂ«r emrat e identifikatorĂ«ve dhe grupet e shprehjeve tĂ« rregullta, ku tani ndalohet pĂ«rdorimi i rreth 160 simboleve Unicode, tĂ« cilat mĂ« parĂ« pĂ«rfshiheshin nĂ« klasĂ«n w. PĂ«r shembull, nga veprimi i klasĂ«s w, qĂ« mbulon tĂ« gjitha shkronjat, numrat dhe simbolet e nĂ«nvizimit, janĂ« pĂ«rjashtuar shkronjat latine nĂ« forma rrethore, qĂ« i ngjajnĂ« shkronjave tĂ« vĂ«rteta, por nuk janĂ« ato. Ndryshimi i sjelljes ndikon vetĂ«m programet qĂ« pĂ«rdorin modalitetin use utf8.
  • JanĂ« eliminuar dobĂ«sitĂ« e shkaktuara nga mbushjet e tamponĂ«ve nĂ« funksionet Perl_study_chunk (CVE-2026-8376, qĂ« manifestohet nĂ« ndĂ«rtimet 32-bit) dhe S_measure_struct (CVE-2026-57432), si dhe mbushja e shpejtĂ«sisĂ« 16-bit nĂ« motorin Regex (CVE-2026-13221), e cila mund tĂ« çojĂ« nĂ« shfaqjen e gabuar tĂ« shprehjes sĂ« rregullt.
  • Kalimi i pĂ«rdorimit tĂ« operatorit goto pĂ«r kalimin nĂ« pozita brenda cikleve dhe strukturave bllok Ă«shtĂ« ndaluar. Kjo mundĂ«si u shpall e vjetruar nĂ« vitin 2010.
  • JanĂ« kryer optimizime tĂ« performancĂ«s qĂ« kanĂ« pĂ«rshpejtuar operacionet e shtrimit, zbritjes dhe shumzimit tĂ« numrave tĂ« plotĂ«, pĂ«rpunimin e nĂ«nshkrimeve tĂ« funksioneve dhe mbushjen e hash-eve nga lista nĂ« formatin çelĂ«s/vlerĂ« me çelĂ«sa stringut tĂ« njohur nĂ« fazĂ«n e kompilimit.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster