Pasi njĂ« vit zhvillim, Ă«shtĂ« publikuar publikimi i degĂ«s sĂ« re stabile tĂ« gjuhĂ«s sĂ« programimit Perl â 5.42. GjatĂ« pĂ«rgatitjes sĂ« kĂ«tij versioni u ndryshuan rreth 280 mijĂ« rreshta kodi (pa dokumentacionin dhe kodin e gjeneruar automatikisht â 93 mijĂ«), ndryshimet prekĂ«n 1500 skedarĂ«, dhe nĂ« zhvillim morĂ«n pjesĂ« 64 zhvillues.
Dega 5.42 Ă«shtĂ« lĂ«shuar sipas njĂ« programi tĂ« miratuar dymbĂ«dhjetĂ« vjet mĂ« parĂ«, qĂ« parashikon lĂ«shimin e degĂ«ve tĂ« reja stabile çdo vit dhe lĂ«shimeve korrigjuese â çdo tre muaj. Rreth njĂ« muaj mĂ« vonĂ« planifikohet tĂ« lĂ«shohet lĂ«shimi i parĂ« korrigjues Perl 5.42.1, nĂ« tĂ« cilin do tĂ« korrigjohen gabimet mĂ« tĂ« rĂ«ndĂ«sishme tĂ« zbuluara gjatĂ« implementimit tĂ« Perl 5.42.0. NĂ« tĂ« njĂ«jtĂ«n kohĂ« me daljen e Perl 5.42, mbĂ«shtetje pĂ«r dega 5.38 Ă«shtĂ« ndalur, pĂ«r tĂ« cilĂ«n pĂ«rditĂ«sime mund tĂ« lĂ«shohen nĂ« tĂ« ardhmen vetĂ«m nĂ« rast se zbulohet ndonjĂ« problem kritik me sigurinĂ«. NĂ« tĂ« ardhmen e afĂ«rt do tĂ« fillojĂ« procesi i zhvillimit tĂ« degĂ«s eksperimentale 5.43, mbi tĂ« cilĂ«n nĂ« qershor tĂ« vitit 2026 do tĂ« formohet njĂ« lĂ«shim stabil Perl 5.44, nĂ«se nuk merret njĂ« vendim pĂ«r tĂ« kaluar nĂ« numĂ«rimin 7.x.
Ndryshimet kryesore:
- Shtohen operatorĂ« eksperimentalĂ« pĂ«r pĂ«rpunimin e listave â «any { BLOCK } @list» dhe «all { BLOCK } @list», tĂ« cilat janĂ« tĂ« ngjashme me operatorin «grep { BLOCK } @list», por mund tĂ« kthejnĂ« vetĂ«m vlerat true ose false. OperatorĂ«t «all» kthen «true» nĂ«se kushti pĂ«rmbushet pĂ«r tĂ« gjithĂ« elementĂ«t e listĂ«s, ndĂ«rsa operatori «any» pĂ«rmbush kushtin pĂ«r ndonjĂ« element. Funksionaliteti i operatorĂ«ve Ă«shtĂ« i ngjashĂ«m me funksionet nga moduli List::Util, por variantet e integruara janĂ« mĂ« tĂ« shpejta 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Ă« gjithĂ« numrat janĂ« çift»; }
- Për fushat e përcaktuara brenda klasës është realizuar atributi «:writer», i cili aplikohet për të krijuar automatikisht një metodë që shkruan vlerën e variablës në fushë 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);
- Shtuar mbështetje për përcaktimin e metodave leksikore, të cilat me analogji me përcaktimin e nënprogrameve leksikore («lexical_subs»), lejojnë krijimin e metodave që janë të disponueshme vetëm brenda fushës leksikore të bllokut ku ata janë krijuar. Për të krijuar metoda të tilla përdoret shprehja «my emri_i_metodës».
- Shtuar operatori «->&», i cili lejon thirrjen e nënprogrameve që ndodhen në fushën leksikore, ashtu siç do ishin metoda. Në kombinim me mundësinë e përcaktimit të metodave leksikore, operatori i ri realizon funksionalitet të ngjashëm me metodat private.
- Shtuar operatori i caktimit «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'» (default), dhe pĂ«r UTF-8 â «use source::encoding âutf8âČ», ku kjo e fundit Ă«shtĂ« ekuivalente me «use utf8». Interpretor do tĂ« nxjerrĂ« njĂ« gabim nĂ«se nĂ« kodin e shĂ«nuar si ASCII ka karaktere UTF-8, ose nĂ«se nĂ« kodin e shĂ«nuar si UTF-8 pĂ«rdoren sekuenca escape «\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 e emrave «CORE::» është shtuar funksioni chdir(). Për shembull, tani kjo funksion mund të thirret si «&CORE::chdir($dir)» ose «my $ref = \&CORE::chdir; $ref->($dir)».
- Shto Ă«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.sh., «MyâModuleâVar» nĂ« vend tĂ« «My::Module::Var»). Fillimisht nĂ« Perl 5.42 ishte planifikuar tĂ« hiqej mbĂ«shtetja pĂ«r kĂ«to ndarĂ«s, tĂ« cilĂ«t mĂ« parĂ« ishin shpallur tĂ« vjetruar, por gjatĂ« diskutimeve u vendos qĂ« tĂ« ruhej kjo mundĂ«si si parazgjedhje, duke parashikuar njĂ« opsion pĂ«r çaktivizim.
- Funksionaliteti «switch» dhe operatori «~~» janĂ« pĂ«rfshirĂ« nĂ« numrin e mundĂ«sive tĂ« rikthyera, tĂ« cilat mĂ« parĂ« ishin shĂ«nuar si tĂ« vjetruara dhe ishin planifikuar pĂ«r t'u eliminuar. Duke filluar nga lĂ«shimet Perl 5.36 dhe 5.42 mundĂ«sitĂ« «switch» dhe «~~» janĂ« tĂ« çaktivizuara si parazgjedhje kur lidhni kodin me versionet e gjuhĂ«s (p.sh., kur especificoni «use v5.42»), por mund tĂ« aktivizohen me shprehjet âuse feature «switch»â dhe âuse feature «smartmatch»â.
- Shtuar mbështetje për specifikimin Unicode 16.0.
Burimi: opennet.ru
