ËshtĂ« i disponueshĂ«m gjuha e programimit Perl 5.42

Pas njĂ« vit zhvillimi, Ă«shtĂ« publikuar lĂ«shimi i degĂ«s sĂ« re tĂ« stabilizuar tĂ« gjuhĂ«s sĂ« programimit Perl — 5.42. GjatĂ« pĂ«rgatitjes sĂ« kĂ«saj lĂ«shimi, janĂ« ndryshuar rreth 280 mijĂ« rreshta kodi (pa dokumentacionin dhe kodin e gjeneruar automatikisht — 93 mijĂ«), ndryshimet preku 1500 skedarĂ«, nĂ« zhvillim morĂ«n pjesĂ« 64 zhvillues.

Dega 5.42 Ă«shtĂ« lĂ«shuar nĂ« pĂ«rputhje me planin e miratuar dhjetĂ« e dy vjet mĂ« parĂ« pĂ«r zhvillimin e caktuar, qĂ« parashikon lĂ«shimin e degĂ«ve tĂ« reja tĂ« stabilizuara çdo vit dhe lĂ«shimeve korrigjuese — çdo tre muaj. Rreth njĂ« muaj mĂ« vonĂ« pritet tĂ« lĂ«shohet lĂ«shimi i parĂ« korrigjues Perl 5.42.1, nĂ« tĂ« cilin do tĂ« rregullohen gabimet mĂ« tĂ« rĂ«ndĂ«sishme qĂ« janĂ« zbuluar gjatĂ« implementimit tĂ« Perl 5.42.0. NĂ« tĂ« njĂ«jtĂ«n kohĂ« me daljen e Perl 5.42, ndaloi mbĂ«shtetja pĂ«r degĂ«n 5.38, pĂ«r tĂ« cilĂ«n pĂ«rditĂ«simet mund tĂ« lĂ«shohen nĂ« tĂ« ardhmen vetĂ«m nĂ« rast tĂ« zbulimit tĂ« problemeve kritike me sigurinĂ«. NĂ« njĂ« tĂ« ardhme tĂ« afĂ«rt do tĂ« fillojĂ« procesi i zhvillimit tĂ« degĂ«s eksperimentale 5.43, mbi tĂ« cilĂ«n do tĂ« formohet njĂ« lĂ«shim stabil i Perl 5.44 nĂ« qershor 2026, nĂ«se nuk do tĂ« merret njĂ« vendim pĂ«r t'u kaluar nĂ« numĂ«rimin 7.x.

Ndryshimet kryesore:

  • JanĂ« shtuar operatorĂ« eksperimentalĂ« pĂ«r trajtimin e listave — «any { BLOCK } @list» dhe «all { BLOCK } @list», tĂ« cilĂ«t janĂ« tĂ« ngjashĂ«m me operatorin «grep { BLOCK } @list», por mund tĂ« kthejnĂ« vetĂ«m vlerat e vĂ«rteta ose false. OperatorĂ«t «all» kthen «true» kur kushti pĂ«rmbushet pĂ«r tĂ« gjithĂ« elementĂ«t e listĂ«s, ndĂ«rsa operatori «any» — kur kushti pĂ«rmbushet pĂ«r tĂ« paktĂ«n njĂ« element. Funksionaliteti i operatorĂ«ve Ă«shtĂ« i ngjashĂ«m me funksionet nga moduli List::Util, por variantet e integruara janĂ« mĂ« tĂ« shpejtĂ« dhe konsumojnĂ« mĂ« pak memorie. use v5.42; use feature ‘keyword_all’; no warnings ‘experimental::keyword_all’; my @numbers = 
 if ( all { $_ % 2 == 0 } @numbers ) { say «TĂ« gjitha numrat janĂ« çift»; }
  • PĂ«r fushat e pĂ«rcaktuara brenda klasĂ«s Ă«shtĂ« realizuar atributi «:writer», i aplikuar pĂ«r krijimin automatik tĂ« njĂ« metode qĂ« regjistron vlerĂ«n e variablĂ«s nĂ« fushĂ«n pĂ«r instancĂ«n aktuale tĂ« klasĂ«s. class Point { field $x :reader :writer :param; field $y :reader :writer :param; } my $p = Point->new( x => 20, y => 40 ); $p->set_x(60);
  • Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rcaktimin e metodave leksikore, e cila, si pĂ«rcaktimi i nĂ«nprogrameve leksikore (‘lexical_subs’), lejon krijimin e metodave qĂ« janĂ« tĂ« disponueshme vetĂ«m brenda fushĂ«s leksikore tĂ« bllokut nĂ« tĂ« cilin janĂ« krijuar. PĂ«r tĂ« krijuar metoda tĂ« tilla pĂ«rdoret shprehja ‘my emri_i_metodĂ«s’.
  • Ă«shtĂ« shtuar operatori ‘->&’, i cili lejon thirrjen e nĂ«nprogrameve qĂ« ndodhen nĂ« fushĂ«n leksikore, ashtu si nĂ«se ato janĂ« metoda. NĂ« kombinim me mundĂ«sinĂ« e pĂ«rcaktimit tĂ« metodave leksikore, operatori i ri realizon njĂ« funksionalitet tĂ« ngjashĂ«m me metodat private.
  • Ă«shtĂ« shtuar operatori i ngarkimit ‘A ^^= B’, i cili kryen operacionin ‘A = A XOR B’.
  • Ă«shtĂ« shtuar pragma ‘source::encoding’, e cila pĂ«rcakton kodimin e kodit burimor. PĂ«r kodin nĂ« kodimin ASCII mund tĂ« specifikohet ‘use source::encoding ‘ascii’ (nĂ« parazgjedhje), ndĂ«rsa pĂ«r UTF-8 – ‘use source::encoding ‘utf8’’, me kĂ«tĂ« shprehje tĂ« fundit qĂ« Ă«shtĂ« ekuivalente me shprehjen ‘use utf8’. Interpretuesi do tĂ« japĂ« njĂ« gabim nĂ«se nĂ« kodin e etiketuar si ASCII hasen simbole UTF-8, ose nĂ«se nĂ« kodin e etiketuar si UTF-8 pĂ«rdoren sekuenca ikjeje ‘\x{}’. PĂ«r tĂ« çaktivizuar kontrollin e pjesĂ«s sĂ« kodit, mund tĂ« pĂ«rdoret vlera ‘use no source::encoding’. NĂ« praktikĂ«, pragma e shtuar mund tĂ« jetĂ« e dobishme pĂ«r tĂ« identifikuar rastet kur zhvilluesi harron tĂ« specifikojĂ« ‘use utf8’ pĂ«r kodin nĂ« kodimin UTF-8.
  • NĂ« hapĂ«sirĂ«n emĂ«rore ‘CORE::’ Ă«shtĂ« shtuar funksioni chdir(). PĂ«r shembull, tani mund tĂ« thirreni kĂ«tĂ« funksion si ‘&CORE::chdir($dir)’ ose ‘my $ref = \&CORE::chdir; $ref->($dir)’.
  • Ă«shtĂ« shtuar shprehja ‘no feature «apostrophe_as_package_separator»’ pĂ«r tĂ« çaktivizuar mbĂ«shtetje pĂ«r pĂ«rdorimin e simbolit ‘’ si ndarĂ«s emrash paketash (pĂ«r shembull, ‘My’Module’Var’ nĂ« vend tĂ« ‘My::Module::Var’). Fillimisht nĂ« Perl 5.42 ishte planifikuar tĂ« hiqej mbĂ«shtetje pĂ«r ndarĂ«s tĂ« tillĂ«, tĂ« cilĂ«t ishin shpallur tĂ« vjetĂ«ruar, por nĂ« diskutime u vendos tĂ« mbahej kjo mundĂ«si nĂ« mĂ«nyrĂ« parazgjedhĂ«se, por tĂ« parashikohet njĂ« opsion pĂ«r çaktivizimin e saj.
  • NĂ« numrin e mundĂ«sive tĂ« rikthyera Ă«shtĂ« pĂ«rfshirĂ« funksionaliteti «switch» dhe operatori «~~», tĂ« cilat mĂ« parĂ« ishin shĂ«nuar si tĂ« vjetra dhe ishin planifikuar pĂ«r t'u hequr. Duke filluar nga lĂ«shimet e Perl 5.36 dhe 5.42, mundĂ«sitĂ« «switch» dhe «~~» janĂ« tĂ« çaktivizuara nĂ« mĂ«nyrĂ« default kur lidhen me kodin e versioneve tĂ« gjuhĂ«s (pĂ«r shembull, duke specifikuar «use v5.42»), por mund tĂ« aktivizohen me shprehjet ‘use feature «switch»‘ dhe ‘use feature «smartmatch»‘.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r specifikimin Unicode 16.0.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster