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
