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
