Perl 5.44


3

PĂ€rast aasta arendust avaldati uue stabiilse Perl programmeerimiskeele haru vĂ€ljaanne — 5.44. Valmistamisel uus vĂ€ljaanne on muudetud umbes 270 000 koodirida (ilma dokumentatsiooni ja automaatselt genereeritud koodita — 110 000), muudatused hĂ”lmavad 860 faili, arenduses osales 71 arendajat. Haru 5.44 on vĂ€lja antud juba 13 aastat tagasi kinnitatud jĂ€iga arenduskava kohaselt, mis eeldab uute stabiilsete harude vĂ€ljalaskmist kord aastas ja korrigeerivate vĂ€ljaannete vĂ€ljalaskmist kord kolme kuu jooksul. Umbes kuu aja pĂ€rast on plaanis vĂ€lja anda esimene korrigeeriv vĂ€ljaanne Perl 5.44.1, milles parandatakse kĂ”ige olulisemad vead, mis tuvastati Perl 5.44.0 kasutuselevĂ”tu kĂ€igus. Samal ajal, kui Perl 5.44 vĂ€lja anti, lĂ”petati haru 5.40 tugi, mille jaoks vĂ€rskendusi vĂ”ib tulevikus vĂ€lja anda ainult kriitiliste turvaprobleemide tuvastamise korral.

Alustati katsetusharu 5.45 arendamist, mille pĂ”hjal kujundatakse 2027. aasta esimeses pooles stabiilne vĂ€ljaanne Perl 5.46, kui ei otsustata ĂŒleminekuks numbristiku 7.x. katsetusvĂ”imaluse kaudu nimetatud parameetrite kasutamiseks

Peamised muudatused:

  • Lisatud funktsioonide allkirjades mÀÀratlemiseks, et edastatavad muutujaid ei mÀÀratleta funktsiooni kehas, vaid selle kuulutamisel. Uus vĂ”imalus vĂ”imaldab edastada parameetreid mitte rangelt jĂ€rjestikku, vaid suvalises jĂ€rjekorras, kasutades vĂ”tme/vÀÀrtuse paare ja sĂŒntaksit nagu elementide mÀÀramise puhul hash'ides: vana sĂŒntaks: sub f { my ($x, $y) = @_; 
} f(1, 2);
    • allkirjad: sub f ($x, $y) { 
 } f(1, 2);
    • nimetatud parameetritega allkirjad: sub f (:$x, :$y) { 
 } f(y => 2, x => 1);
    • allkirjad koos nimetatud parameetritega: sub f (:$x, :$y) { 
 } f(y => 2, x => 1);
  • Lisatud on eksperimentaalne vĂ”imalus kasutada alias'e (viit viidetele) foreach silmuste mitme muutujaga. Tehtud vĂ”imalus vĂ”imaldab luua alias'e foreach silmuses, kui korraga tĂ”mmatakse vĂ€lja mitu vÀÀrtust ĂŒhe silmuse iteratsiooni jooksul. NĂ€iteks saab luua alias'e hash-elementide ja massiivi jaoks, kui korraga 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 tuleks kasutada lahtiĂŒhendamist: foreach my ($key, $var) (%hash) { say "$key massiiv sisaldab: @$var"; } # Ilma eksperimentaalsete vĂ”imaluste refaliasing ja declared_refs: foreach my $key (keys %hash) { say "$key massiiv sisaldab: @{$hash{$key}}"; }
  • Regulaarsed vĂ€ljendid rakendatud eksperimentaalne reĆŸiim 'enhanced_xx', mis vĂ”imaldab kasutada modifikaatorit /xx sĂŒmboliklasside jaoks ruudukujulistes sulgudes ([a-zA-Z]), et jagada need mitmele reale vĂ”i asendada kommentaaridega. NĂ€iteks tingimust if ($text =~ m/[a-zA-Z]/){ vĂ”ib vormistada nii: if ($text =~ m/[ a-z # vĂ€ikesed tĂ€hed A-Z # suured tĂ€hed ]/xx) {
  • Pseudojuhuslike arvude generaatoris kasutatakse entropia saamiseks sĂŒsteemikĂ”net getentropy() sĂŒsteemides, kus see on toetatud (Linux, BSD, macOS). Teistes sĂŒsteemides saadakse entropia lugedes seadmest /dev/urandom vĂ”i kasutades ajahash'i, protsessi identifikaatori ja nĂ€idiku vÀÀrtuse pĂ”hjal.
  • Toetuse lisamine spetsifikatsioonile Unicode 17.0.
  • Tagatud on rangelt Unicode'i reeglite jĂ€rgimine identifikaatorite ja regulaarselt vĂ€ljendite gruppide nimede osas, kus nĂŒĂŒd on keelatud kasutada peaaegu 160 Unicode-mĂ€rki, mis varem kuulusid klassi w. NĂ€iteks viidi klassi w, mis hĂ”lmab kĂ”iki tĂ€hti, numbreid ja alakriipsu, vĂ€lja ringikeeratud ladina tĂ€hed, mis meenutavad reaalset tĂ€hti, kuid ei ole need. KĂ€itumise muutmine mĂ”jutab ainult programme, mis kasutavad reĆŸiimi use utf8.
  • Korrigeeritud on haavatavused, mida pĂ”hjustavad puhverĂŒlekanded funktsioonides Perl_study_chunk (CVE-2026-8376, mis ilmneb 32-bitistes versioonides) ja S_measure_struct (CVE-2026-57432), samuti 16-bitise loenduri ĂŒlekandmine Regex-mootoris (CVE-2026-13221), mis vĂ”ib pĂ”hjustada regulaarse vĂ€ljendi vale kĂ€ivitumise.
  • goto operaatori abil positsioonidele tsĂŒklite ja plokkstruktuuride sees navigeerimine on keelatud. See vĂ”imalus kuulutati vananenuks 2010. aastal.
  • Toimunud on jĂ”udluse optimeerimine, mis on kiirendanud tĂ€isarvude liitmise, lahutamise ja korrutamise operatsioone, funktsioonisignatuuride töötlemist ja vĂ”tme/vÀÀrtuse formaatide loeteldamisest tulenevate hash-massiivide tĂ€itmist, kus vĂ”tmed on teada juba kompileerimise ajal.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster