Saadaolev programmeerimiskeel Perl 5.42

PĂ€rast aasta kestnud arendust on vĂ€lja antud uus stabiilne Perl programmeerimiskeele versioon — 5.42. Uue vĂ€ljaande ettevalmistamise kĂ€igus muudeti umbes 280 000 koodirida (ilma dokumentatsiooni ja automaatselt genereeritud koodita — 93 000), muudatused puudutasid 1500 faili ning arenduses osales 64 arendajat.

Versioon 5.42 vĂ€lja anti vastavalt kinnitatud kaheteistkĂŒmne aasta eest korraldatud arenduskavale, mis hĂ”lmab uute stabiilsete versioonide vĂ€ljaandmist kord aastas ja paranduste lĂ€biviimist iga kolme kuu tagant. Umbes kuu pĂ€rast plaanitakse vĂ€lja anda esimene parandav versioon Perl 5.42.1, kus parandatakse tĂ€htsamaid vigu, mis avastati Perl 5.42.0 rakendamise kĂ€igus. Koos Perl 5.42 vĂ€ljaandmisega lĂ”petatakse versiooni 5.38 tugi, millele uuendusi vĂ”ib tulevikus vĂ€lja anda vaid kriitiliste turvaprobleemide ilmnemisel. Peagi algab eksperimendiversiooni 5.43 arendus, mille baasil kujuneb juunis 2026 vĂ€lja stabiilne versioon Perl 5.44, kui ei otsustata ĂŒleminekuks versiooninumbrile 7.x.

Peamised muutused:

  • Kasutusele on vĂ”etud eksperimentaalsed loendi töötlemise operaatorid – «any { BLOCK } @list» ja «all { BLOCK } @list», mis meenutavad operaatorit «grep { BLOCK } @list», kuid vĂ”ivad tagastada vaid vÀÀrtused true vĂ”i false. Operaator «all» tagastab «true», kui tingimus kehtib kĂ”ikidele loendi elementidele, ja operaator «any» — kui see kehtib vĂ€hemalt ĂŒhe elemendi puhul. Operaatorite funktsionaalsus on sarnane List::Util mooduli funktsioonidega, kuid sisseehitatud variandid on kiiremad ja vĂ€hem mĂ€lukallid. use v5.42; use feature 'keyword_all'; no warnings 'experimental::keyword_all'; my @numbers = 
 if ( all { $_ % 2 == 0 } @numbers ) { say 'KĂ”ik numbrid on paaris'; }
  • Klassi sees mÀÀratletud vĂ€ljadele on rakendatud atribuut «:writer», mida kasutatakse meetodi automaatseks loomiseks, mis salvestab 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 toimetamisviiside mÀÀramise tugi, mis sarnaselt lexikaalsete alamprogrammide („lexical_subs“) mÀÀramisega, vĂ”imaldab luua meetodeid, mis on kĂ€ttesaadavad ainult neis loomisala leksikaalses nĂ€htavuses. Selliste meetodite loomiseks kasutatakse vĂ€ljendit „my nimi_meetod“.
  • Lisatud operaator „->&“, mis vĂ”imaldab kutsuda alamprogramme, mis asuvad leksikaalses nĂ€htavuses, justkui oleks nad meetodid. Koos leksikaalsete meetodite mÀÀramise vĂ”imalusega realiseerib uus operaator funktsionaalsuse, mis sarnaneb privaatsete meetoditega.
  • Lisatud mÀÀramisoperaator „A ^^= B“, mis tĂ€idab operatsiooni „A = A XOR B“.
  • Lisatud pragma „source::encoding“, mis mÀÀrab allika koodi kodeeringu. ASCII kodeeringuga koodi jaoks saab mÀÀrata „use source::encoding 'ascii'“ (vaikimisi), ja UTF-8 puhul - „use source::encoding 'utf8'“, samal ajal kui viimane vĂ€ljend on ekvivalentne vĂ€ljendiga „use utf8“. TĂ”lgendaja annab tĂ”rke, kui ASCII mĂ€rgistatud koodis esinevad UTF-8 sĂŒmbolid, vĂ”i kui UTF-8 mĂ€rgistatud koodis kasutatakse escape-jĂ€rjestusi „\x{}“. Koodi osa kontrollimise keelamiseks vĂ”ib kasutada vÀÀrtust „use no source::encoding“. Praktikas vĂ”ib lisatud pragma osutuda kasulikuks, et tuvastada juhtumeid, kus arendaja on unustanud mÀÀrata „use utf8“ UTF-8 kodeeringus koodile.
  • Nime ruumi „CORE::“ on lisatud funktsioon chdir(). NĂ€iteks on nĂŒĂŒd vĂ”imalik sellele funktsioonile viidata kui „&CORE::chdir($dir)“ vĂ”i „my $ref = \&CORE::chdir; $ref->($dir)“.
  • Lisatud vĂ€ljend ‘no feature «apostrophe_as_package_separator»‘, et keelata toetuse pakkumine sĂŒmboli „'“ kasutamiseks paketi nimede eraldajana (nĂ€iteks „My'Module'Var“ asemel „My::Module::Var“). Algselt kavandati Perl 5.42 toetuse eemaldamine selliste eraldajate jaoks, mis olid varem kuulutatud vananenuks, kuid arutelude kĂ€igus otsustati hoida see vĂ”imalus vaikimisi alles, kuid ette nĂ€ha vĂ”imalus keelamiseks.
  • Tagasi on toodud funktsionaalsus «switch» ja operaator «~~», mis varem olid tĂ€histatud vananenud ja plaanitud eemaldamiseks. Alates Perl 5.36 ja 5.42 vĂ€ljaannetest on «switchi» ja «~~» omadused vaikimisi keelatud, kui kood on seotud keele versioonidega (nt «use v5.42»), kuid need saavad aktiveerida vĂ€ljenditega ‘use feature «switch»‘ ja ‘use feature «smartmatch»‘.
  • Lisatud tugi Unicode 16.0 spetsifikatsioonile.

Allikas: opennet.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