Programmeerimiskeel Perl 5.44 on saadaval

PĂ€rast aasta kestnud arendust on vĂ€lja antud Perl programmeerimiskeele uus stabiilne versioon — 5.44. Uue vĂ€ljaande ettevalmistamisel muudeti umbes 270 tuhat koodirida (ilma dokumentatsioonita ja automaatselt genereeritud koodiga — 110 tuhat), muudatused puudutasid 860 faili, arenduses osales 71 arendajat.

Versioon 5.44 on vĂ€lja antud vastavalt kinnitatud graafikule, mis anti vĂ€lja 13 aastat tagasi ja eeldab stabiilsete harude vĂ€ljalaskmist kord aastas ja paranduste vĂ€ljaandeid — kord 3 kuu jooksul. Umbes kuu jooksul plaanitakse vĂ€lja lasta esimene paranduste vĂ€ljaanne Perl 5.44.1, milles parandatakse kĂ”ige olulisemad vead, mis ilmnesid Perl 5.44.0 rakendamise kĂ€igus. Koos Perl 5.44 vĂ€ljaandmisega lĂ”petatakse versiooni 5.40 tugi, mille jaoks uuendusi vĂ”ib vĂ€lja anda tulevikus ainult suurte turvaprobleemide ilmnemise korral. Alustatud on eksperimenteeriva haru 5.45 arendamist, mille alusel formeeritakse esimeses pooles 2027 stabiilne Perl 5.46 vĂ€ljaanne, kui ei otsustata ĂŒle minna numbreerimisele 7.x.

Olulised muudatused:

  • Lisatud on katseversioon nimega parameetrite kasutamisest funktsioonide signatuurides, mis mÀÀratlevad funktsioonile edastatavate muutujate loendi mitte funktsiooni kehas, vaid selle kuulutamise ajal. Uus vĂ”imalus vĂ”imaldab edastada parameetreid mitte rangelt jĂ€rjestuses, vaid vabalt, kasutades vĂ”tme/vÀÀrtuse paare ja sĂŒntaksit nagu elementide mÀÀramisel hash'ides: Vanas sĂŒntaksis: sub f { my ($x, $y) = @_; 
} f(1, 2); Signatuurid: sub f ($x, $y) { 
 } f(1, 2); Nimega parameetritega signatuurid: sub f (:$x, :$y) { 
 } f(y => 2, x => 1);
  • Lisatud eksperimentaalne funktsionaalsus aliase (viidete viidete) kasutamiseks foreach tsĂŒklites, kus on mitu muutujat. Rakendatud funktsionaalsus vĂ”imaldab luua aliase foreach tsĂŒklis, samal ajal kui tĂ”mmatakse mitu vÀÀrtust vĂ€lja ĂŒhes tsĂŒkli iteratsioonis. NĂ€iteks saab luua aliase hash'i elemendile massiivile, kui kĂ€iakse lĂ€bi hash'i vĂ”tmed ja vÀÀrtused: use v5.44; use feature qw( refaliasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, \@items ) ( %hash ) { say «$key massiiv sisaldab: @items»; } # Enne versiooni 5.44 oleks tulnud delegeerida: foreach my ( $key, $var ) ( %hash ) { say «$key massiiv sisaldab: @$var»; } # Ilma eksperimentaalsete vĂ”imalusteta refaliasing ja declared_refs: foreach my $key (keys %hash) { say «$key massiiv sisaldab: @{$hash{$key}}»; }
  • Regulaaravaldustes on rakendatud eksperimentaalne reĆŸiim ‘enhanced_xx’, mis vĂ”imaldab kasutada modifikaatorit «/xx» sĂŒmbolite klasside (nĂ€iteks [a-zA-Z]) jaoks ruutudes, jagades need mitmele reale vĂ”i lisades kommentaare. NĂ€iteks tingimuse «if ($text =~ m/[a-zA-Z]/){» saab vormistada nii: if ($text =~ m/[ a-z # vĂ€ikesed tĂ€hed A-Z # suured tĂ€hed ]/xx) {
  • Psevdosatelli numbrite generaatoris kasutatakse entropia saamiseks sĂŒsteemikĂ”net getentropy() sĂŒsteemides, mis seda toetavad (Linux, BSD, macOS). ÜlejÀÀnud sĂŒsteemides saavutatakse entropia lugemise kaudu seadmest /dev/urandom vĂ”i kasutades ajast, protsessi ID-st ja nĂ€idiku vÀÀrtusest saadud rĂ€si.
  • Tugi Unicode 17.0 spetsifikatsiooni on lisatud.
  • Unicode reeglite ranget jĂ€rgimist tagatakse identifikaatorite ja regulaarsete vĂ€ljendite gruppide nimede puhul, kus nĂŒĂŒd on keelatud kasutada ligikaudu 160 Unicode'i sĂŒmbolit, mis varem kuulusid klassi '\w'. NĂ€iteks on klassi '\w' tegevusest, mis hĂ”lmab kĂ”iki tĂ€hti, numbreid ja allaviitu, vĂ€lja jĂ€etud ringi sees olevad ladina tĂ€hed, mis meenutavad reaalseid tĂ€hti, kuid ei ole need. KĂ€itumise muutmine mĂ”jutab vaid programme, mis kasutavad 'use utf8' reĆŸiimi.
  • Ohtlikud haavatavused on kĂ”rvaldatud buffermahu ĂŒletamise tĂ”ttu funktsioonides Perl_study_chunk (CVE-2026-8376, ilmneb 32-bitistes kogudes) ja S_measure_struct (CVE-2026-57432), samuti 16-bitise loenduri ĂŒletamine Regex-mootoris (CVE-2026-13221), mis vĂ”ib viia regulaarsete vĂ€ljendite vale töötamiseni.
  • Kasutades goto operaatorit, ei ole vĂ”imalik liikuda positsioonide vahel tsĂŒklites ja plokkstruktuurides. See vĂ”imalus kuulutati aegunuks 2010. aastal.
  • Tegime jĂ”udluse optimeerimise, mis kiirendas tĂ€isarvude liitmise, lahutamise ja korrutamise operatsioone, funktsioonide signatuuride töötlemist ja hashide tĂ€itmist vĂ”tme/vÀÀrtuse loenditest, kus stringide vĂ”tmed on kompilatsiooni ajal teada.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster