Perl 5.44


3

PÀrast aastast arengut avaldatud Perli programmeerimiskeele uue stabiilse haru vÀljalase - 5.44... Millal valmistub Uus versioon muutis ligikaudu 270 000 koodirida (vÀlja arvatud dokumentatsioon ja automaatselt genereeritud kood - 110 000), muudatused mÔjutasid 860 faili ja arenduses osales 71 arendajat.

Haru 5.44 on avaldatud vastavalt kolmteist aastat tagasi kehtestatud fikseeritud arendusgraafikule, mis nĂ€eb ette uute stabiilsete harude avaldamist kord aastas ja vĂ€iksemate vĂ€ljalasete avaldamist iga kolme kuu tagant. Esimene vĂ€iksem vĂ€ljalase, Perl 5.44.1, on kavas avaldada umbes kuu aja pĂ€rast, parandades Perl 5.44.0 juurutamise kĂ€igus avastatud kĂ”ige olulisemad vead. Perl 5.44 vĂ€ljaandmisega on 5.40 haru tugi lĂ”ppenud; selle vĂ€rskendusi vĂ”idakse tulevikus avaldada ainult kriitiliste turvaprobleemide avastamisel. On alanud eksperimentaalse haru 5.45 arendusprotsess, mis on aluseks Perli 5.46 stabiilsele vĂ€ljalaskele 2027. aasta esimesel poolel, kui otsust ei tehta mine ĂŒle numeratsioonini 7.x.

VÔti muutused:

  • Lisatud nimetatud parameetrite kasutamise eksperimentaalne vĂ”imalus allkirjad Funktsioonid, mis defineerivad funktsioonile edastatavate muutujate loendi mitte funktsiooni kehas, vaid selle deklareerimise ajal. See uus funktsioon vĂ”imaldab parameetreid edastada mitte ranges jĂ€rjekorras, vaid suvalises jĂ€rjekorras, kasutades vĂ”tme/vÀÀrtuse paare ja sĂŒntaksit, mis sarnaneb elementide mÀÀramisega rĂ€sivÀÀrtustes:
    • vana sĂŒntaks: sub f { my ($x, $y) = @_; 
} f(1, 2);
    • signatuurid: sub f ($x, $y) { 
 } f(1, 2);
    • signatuurid nimega parameetritega: sub f (:$x, :$y) { 
 } f(y => 2, x => 1);
  • Lisatud eksperimentaalne tugi aliaste (pointerid pointeritele) kasutamiseks foreach-tsĂŒklites mitme muutujaga. See funktsioon vĂ”imaldab teil luua aliase foreach-tsĂŒklis mitme vÀÀrtuse hankimisel ĂŒhe tsĂŒkli iteratsioonis. NĂ€iteks saate luua aliase rĂ€sielemendile massiiviga, kui itereeritakse nii rĂ€si vĂ”tmete kui ka vÀÀrtuste ĂŒle: kasutage versiooni 5.44; kasutage funktsiooni qw( realiasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "$key massiiv sisaldab: @items"; } # Enne versiooni 5.44 oleks viidete eemaldamine vajalik: foreach my ( $key, $var ) ( %hash ) { say "$key massiiv sisaldab: @$var"; } # Ilma eksperimentaalse ĂŒmbervalimise ja declared_refs funktsioonideta: foreach my $key (keys %hash) { say "$key massiiv sisaldab: @{$hash{$key}}"; }
  • Regulaaravaldistes rakendatud Eksperimentaalne reĆŸiim „enhanced_xx” lubab /xx modifikaatorit kasutada nurksulgudes ([a-zA-Z]) olevate mĂ€rgiklassidega, et jagada need mitmele reale vĂ”i lisada kommentaare. NĂ€iteks tingimus if ($text =~ m/[a-zA-Z]/){ vĂ”iks olla kirjutatud jĂ€rgmiselt: if ($text =~ m/[ a-z # vĂ€iketĂ€hed A-Z # suurtĂ€hed ]/xx) {
  • Pseudojuhuslike arvude generaator kasutab getentropy() sĂŒsteemikĂ”net entroopia saamiseks sĂŒsteemides, mis seda toetavad (Linux, BSD, macOS). Teistes sĂŒsteemides saadakse entroopia /dev/urandom seadmest lugemise vĂ”i aja, protsessi ID ja pointeri vÀÀrtuse rĂ€si abil.
  • Lisatud spetsifikatsiooni tugi Unicode 17.0.
  • Identifikaatorite nimede ja regulaaravaldiste rĂŒhmade puhul on tagatud Unicode'i reeglite range jĂ€rgimine, kusjuures ligikaudu 160 Unicode'i tĂ€hemĂ€rki, mis varem kuulusid w-klassi alla, on nĂŒĂŒd keelatud. NĂ€iteks w-klass, mis hĂ”lmab kĂ”iki tĂ€hti, numbreid ja alakriipsu, vĂ€listab nĂŒĂŒd ringiga ĂŒmbritsetud ladina tĂ€hed, mis kĂŒll meenutavad pĂ€ris tĂ€hti, aga ei ole. See kĂ€itumise muutus mĂ”jutab ainult programme, mis kasutavad use utf8 reĆŸiimi.
  • Parandatud Perl_study_chunk funktsioonide puhvri ĂŒletĂ€itumisest tingitud haavatavused (CVE-2026-8376, ilmub 32-bitistes assemblerites) ja S_measure_struct (CVE-2026-57432), samuti 16-bitise loenduri ĂŒletĂ€itumine Regexi mootoris (CVE-2026-13221), mis vĂ”ib pĂ”hjustada regulaaravaldise ebaĂ”nnestumise.
  • TsĂŒklites ja plokkkonstruktsioonides positsioonidele hĂŒppamine goto operaatori abil on keelatud. See funktsioon aegus 2010. aastal.
  • TĂ€isarvude liitmise, lahutamise ja korrutamise, funktsioonide signatuuride töötlemise ning vĂ”tme-/vÀÀrtusloenditest pĂ€rit rĂ€sivÀÀrtuste tĂ€itmise kiirendamiseks kompileerimise ajal teadaolevate stringvĂ”tmetega tehti jĂ”udluse optimeerimisi.

Allikas: linux.org.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster