Saadaval on programmeerimiskeel Perl 5.42

PĂ€rast aasta töötlust on avaldatud uus stabiilne Perl programmeerimiskeele versioon — 5.42. Uue vĂ€ljaande ettevalmistamisel muudeti umbes 280 000 koodirida (ilma dokumentatsioonita ja automaatselt genereeritud kood — 93 000), muudatused puudutasid 1500 faili ning arenduses osales 64 arendajat.

Haru 5.42 vĂ€lja anti vastavalt 12 aastat tagasi kinnitatud arendusskeemile, mille kohaselt vabastatakse uusi stabiilseid haru iga aasta ja korrigeerivaid versioone — iga kolme kuu tagant. Umbes kuu aja pĂ€rast on plaanis vĂ€lja lasta esimene korrigeeriv versioon Perl 5.42.1, milles parandatakse kĂ”ige olulisemad vead, mis leiti Perl 5.42.0 rakendamise kĂ€igus. Samal ajal kui Perl 5.42 vĂ€lja lastakse, lĂ”petatakse 5.38 haru toetamine, mille jaoks vĂ€rskendusi vĂ”idakse tulevikus vĂ€lja anda ainult kriitiliste turvaprobleemide korral. Peagi algab eksperimentaalse 5.43 haru arendamine, mille alusel juunis 2026 valmistatakse ette stabiilne versioon Perl 5.44, kui ei otsustata liikuda numeratsioonile 7.x.

Olulised muudatused:

  • Lisatud on eksperimentaalsed loendi töötlemise operaatorid — „any { BLOCK } @list“ ja „all { BLOCK } @list“, mis meenutavad operaatorit „grep { BLOCK } @list“, kuid vĂ”ivad tagastada ainult vÀÀrtused true vĂ”i false. Operaator „all“ tagastab „true“, kui tingimus kehtib kĂ”ikide loendi elementide jaoks, ja operaator „any“ — kui tingimus kehtib vĂ€hemalt ĂŒhe elementi jaoks. Operaatorite funktsionaalsus sarnaneb List::Util mooduli funktsioonidega, kuid sisseehitatud variandid on kiirem ja tarbivad vĂ€hem mĂ€lu. use v5.42; use feature ‘keyword_all’; no warnings ‘experimental::keyword_all’; my @numbers = 
 if ( all { $_ % 2 == 0 } @numbers ) { say „KĂ”ik numbrid on paarisarvud“; }
  • Klassi sees mÀÀratletud vĂ€ljade jaoks on rakendatud atribuut „:writer“, mis loob automaatselt meetodi, mis kirjutab muutuja vÀÀrtuse klassi praeguse eksemplari vĂ€ljadele. class Point { field $x :reader :writer :param; field $y :reader :writer :param; } my $p = Point->new( x => 20, y => 40 ); $p->set_x(60);
  • Lisatud on toetamine leksikaalsete meetodite mÀÀramiseks, mis sarnaneb leksikaalsete alamprogrammide mÀÀratlemisega („lexical_subs”), vĂ”imaldades luua meetodeid, mis on saadaval vaid nende loomise blokis ehk leksikaalses nĂ€htavuses. Selliste meetodite loomiseks kasutatakse vĂ€ljendit „my meetodi_nimi”.
  • Lisatud on operaator „->&”, mis vĂ”imaldab kutsuda leksikaalsete nĂ€htavuses asuvaid alamprogramme nagu need oleksid meetodid. Koos leksikaalsete meetodite mÀÀratlemise vĂ”imalusega rakendab uus operaator funktsionaalsust, mis sarnaneb privaatsete meetoditega.
  • Lisatud on omistamisoperaator „A ^^= B”, mis tĂ€idab operatsiooni „A = A XOR B”.
  • Lisatud pragma «source::encoding», mis mÀÀrab lĂ€htekoodi koodide. ASCII-koodi jaoks vĂ”ib kasutada «use source::encoding 'ascii'» (vaikimisi) ja UTF-8 jaoks «use source::encoding 'utf8'», samas kui viimane avaldus on ekvivalentne avaldusega «use utf8». TĂ”lgendus vĂ€ljastab vea, kui ASCII-mĂ€rgisega koodis esinevad UTF-8 sĂŒmbolid vĂ”i kui UTF-8-mĂ€rgisega koodis kasutatakse escape-jĂ€rjestusi «\x{}». Koodi osa kontrollimise keelamiseks vĂ”ib kasutada vÀÀrtust «use no source::encoding». Praktikas vĂ”ib lisatud pragma olla kasulik juhtumite tuvastamiseks, kui arendaja unustab mÀÀrata «use utf8» UTF-8-koodiga.
  • Nimeproovile «CORE::» on lisatud funktsioon chdir(). NĂ€iteks on nĂŒĂŒd sellele funktsioonile vĂ”imalik viidata kui «&CORE::chdir($dir)» vĂ”i «my $ref = \&CORE::chdir; $ref->($dir)».
  • Lisatud lause 'no feature «apostrophe_as_package_separator»' pakettide nimede tĂŒkeldamise toetuse keelamiseks, et kasutada sĂŒmbolit » ' « nimede eraldajana (nĂ€iteks «My'Module'Var» asemel «My::Module::Var»). Algse plaani jĂ€rgi pidi Perl 5.42 eemaldama sarnaste eraldajate toe, mida oli varem peetud vananenuks, kuid arutelude kĂ€igus otsustati sĂ€ilitada see vĂ”imalus vaikimisi, kuid ette nĂ€ha valik selle keelamiseks.
  • Tagastatavate vĂ”imaluste hulka on lisatud funktsionaalsus «switch» ja operaator «~~», mis olid varem mĂ€rgitud vananenuks ja plaanitud eemaldamiseks. Alates Perl 5.36 ja 5.42 vĂ€ljaannetest on «switch» ja «~~» vaikimisi keelatud, kui kood on seotud keele versioonidega (nt «use v5.42»), kuid neid saab aktiveerida lausete 'use feature «switch»' ja 'use feature «smartmatch»' abil.
  • Toe lisamine Unicode 16.0 spesifikatsioonile.

Allikas: opennet.ru

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