Perl 5.44


3

Egy év fejlesztés után közzétett a Perl programozási nyelv új stabil ágának kiadása - 5.44... Mikor felkészülés Az új kiadás körülbelül 270 000 sornyi kódot változtatott meg (a dokumentációt és az automatikusan generált kódot nem számítva - 110 000), a változtatások 860 fájlt érintettek, és 71 fejlesztő vett részt a fejlesztésben.

Az 5.44-es ág a tizenhárom évvel ezelőtt meghatározott fix fejlesztési ütemterv szerint jelent meg, amely évente egyszer új stabil ágak, háromhavonta pedig kisebb kiadások kiadását írja elő. Az első kisebb kiadás, a Perl 5.44.1, körülbelül egy hónap múlva jelenik meg, és a Perl 5.44.0 implementálása során felfedezett legjelentősebb hibákat javítja. A Perl 5.44 megjelenésével az 5.40-es ág támogatása megszűnt; a jövőben csak akkor jelenhetnek meg frissítések hozzá, ha kritikus biztonsági problémákat fedeznek fel. Elkezdődött a kísérleti 5.45-ös ág fejlesztési folyamata, amely a Perl 5.46 stabil kiadásának alapját képezi majd 2027 első felében, kivéve, ha döntés születik Kelj át a 7.x számozáshoz.

Kulcs változások:

  • Hozzáadva a megnevezett paraméterek használatának kísérleti lehetősége aláírások Olyan függvények, amelyek a függvénynek átadott változók listáját nem a függvény törzsében, hanem a deklarációja során definiálják. Ez az új funkció lehetővé teszi, hogy a paramétereket ne szigorú sorrendben, hanem tetszőleges sorrendben adjuk át, kulcs/érték párok használatával és a hashekben lévő elemek hozzárendeléséhez hasonló szintaxissal:
    • régi szintaxis: sub f { my ($x, $y) = @_; …} f(1, 2);
    • szignatúrák: sub f ($x, $y) { … } f(1, 2);
    • névvel ellátott paraméterekkel rendelkező aláírások: sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • Kísérleti támogatást adtunk hozzá az aliasok (pointerek mutatói) használatához a foreach ciklusokban több változóval. Ez a funkció lehetővé teszi alias létrehozását egy foreach ciklusban, amikor több értéket kérünk le egyetlen ciklus iterációban. Például létrehozhatunk aliast egy tömbbel rendelkező hash elemhez, amikor a hash kulcsain és értékein is végighaladunk: use v5.44; use feature qw( realiasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "A $key tömb tartalma: @items"; } # Az 5.44-es verzió előtt dereferencia lett volna szükséges: foreach my ( $key, $var ) ( %hash ) { say "A $key tömb tartalma: @$var"; } # Kísérleti realiasing és declared_refs funkciók nélkül: foreach my $key (keys %hash) { say "A $key tömb tartalma: @{$hash{$key}}"; }
  • Reguláris kifejezésekben megvalósítani A kísérleti „enhanced_xx” mód lehetővé teszi az /xx módosító használatát a szögletes zárójelben lévő karakterosztályokkal ([a-zA-Z]), így több sorra oszthatók vagy megjegyzések szúrhatók be. Például az „if” ($text =~ m/[a-zA-Z]/){ feltétel így írható fel: if ($text =~ m/[ a-z # kisbetűk A-Z # nagybetűk ]/xx) {
  • A pszeudo-véletlenszám-generátor a getentropy() rendszerhívást használja az entrópia meghatározásához az azt támogató rendszereken (Linux, BSD, macOS). Más rendszereken az entrópiát a /dev/urandom eszközből olvasással vagy az idő, a folyamatazonosító és a mutató értékének hash-ével számítják ki.
  • Hozzáadott specifikációs támogatás Unicode 17.0.
  • Az azonosítónevek és a reguláris kifejezéscsoportok esetében biztosított a Unicode szabályok szigorú betartása, és jelenleg körülbelül 160, korábban a w osztály által lefedett Unicode karakter tiltott. Például a w osztály, amely az összes betűt, számjegyet és az aláhúzásjelet lefedi, mostantól kizárja a bekarikázott latin betűket, amelyek hasonlítanak a valódi betűkre, de nem azok. Ez a viselkedésbeli változás csak a use utf8 módot használó programokat érinti.
  • Kijavítottunk a Perl_study_chunk függvényekben puffer túlcsordulások okozta sebezhetőségeket (CVE-2026 8376-, 32 bites assemblyekben jelenik meg) és S_measure_struct (CVE-2026 57432-), valamint a 16 bites számláló túlcsordulása a Regex motorban (CVE-2026 13221-), ami a reguláris kifejezés hibáját okozhatja.
  • Ciklusokon és blokkokon belüli pozíciókra ugrás a goto operátor használatával tilos. Ez a funkció 2010-ben elavulttá vált.
  • Teljesítményoptimalizálásokat végeztek az egész számok összeadásának, kivonásának és szorzásának felgyorsítása, a függvényaláírások feldolgozása, valamint a kulcs/érték listákból származó hashek feltöltése a fordítási időben ismert karakterlánckulcsokkal.

Forrás: linux.org.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster