A Perl fejlesztőcsapata bejelentette a Perl 5.44 kiadását, amely az új 5.44-es sorozat első stabil, éles használatra szánt verziója. Körülbelül 12 hónap fejlesztés előzte meg a Perl 5.42 óta.
A nyelv legfontosabb újdonsága a név szerinti paraméterek kísérleti támogatása az alprogramok szignatúráiban. Eddig a Perl szignatúrákban az argumentumokat elsősorban pozíció alapján adták át. A Perl 5.44-ben a fejlesztők már megadhatnak olyan paramétereket, amelyeket a hívó név–érték párokkal adhat át.
Például:
sub create_user ($name, :$email, :$active = 1) {
...
}
create_user("John", email => "john@example.com");Code language: Perl (perl)
A Perl 5.44 két kísérleti funkciót is összekapcsol: a többváltozós foreach ciklusokat és a referencia-aliasokat. Így a fejlesztők egy cikluslépésben több értéket is feldolgozhatnak, és változókat jelölhetnek ki hivatkozott adatok aliasaként.
Ennek köszönhetően a ciklus végig tud menni kulcs–tömbreferencia párokon, miközben közvetlenül aliasolja a tömböt:
foreach my ($key, \@items) (%hash) {
say "The $key array contains: @items";
}Code language: Perl (perl)
A refaliasing és a declared_refs funkciók, amelyekre ez a szintaxis épít, továbbra is kísérleti állapotban vannak.
Kibővítették a reguláris kifejezések kezelését is az /xx módosítóval. Ha engedélyezik az experimental enhanced_xx funkciót, a kapcsos zárójelek közötti karakterosztályok több sorra is átnyúlhatnak, és megjegyzéseket is tartalmazhatnak. A Perl arra is tud figyelmeztetni, ha a minta egy részét a programozó szándéka ellenére megjegyzésként értelmezte.
Ezzel párhuzamosan a Perl 5.44 új korlátozásokat vezet be az /xx kifejezésekre. Mostantól elavultnak számít, ha egy karakterosztályon belül kódolatlan # karaktert vagy szó szerinti függőleges whitespace-t használnak. A meglévő kifejezések egyelőre tovább működnek, de elavulásra figyelmeztető üzenetet adnak, ezért érdemes őket úgy módosítani, hogy a # karaktert kódolják, vagy \n-hez hasonló szekvenciákat használjanak.
Fontos újdonság a Unicode 17.0 támogatása is. A Perl mostantól szigorúbban érvényesíti a Unicode szabályait az azonosítókra és a névvel ellátott reguláris kifejezéscsoportokra. Körülbelül 160 olyan karaktert utasít el, amelyeket korábban a Perl tágabb \w értelmezése még elfogadott, de nem felelnek meg a Unicode XID_Start és XID_Continue tulajdonságainak.
Mivel ez nem visszafelé kompatibilis változás, azoknak a fejlesztőknek, akik ritka Unicode karaktereket használnak változó-, csomag-, függvény- vagy reguláris kifejezéscsoport-nevekben, érdemes átnézniük a kódjukat a verziófrissítés előtt.
A biztonság terén ez a kiadás három sebezhetőséget javít. A CVE-2026-8376 a Perl_study_chunk függvény hibás buffer-méret számításáról szól, amely 32 bites rendszereken egész túlcsordulást és a tartományon túli írást okozhatott.
A CVE-2026-57432 a pack és unpack függvényeknek átadott nagyon nagy struktúrák kezelését érinti. Egy túl nagy ismétlésszám egész túlcsorduláshoz, majd buffer túlcsorduláshoz vezethetett.
A harmadik probléma, a CVE-2026-13221, a reguláris kifejezésmotor trie optimalizációját érinti. Ha egy kifejezésben körülbelül 65 000-nél több alternatív ág szerepel, az túlcsordíthat egy 16 bites mezőt, ami hibás egyezésekhez vezethet.
A Perl 5.44 megváltoztatja a belső pszeudovéletlen számgenerátor inicializálásának módját is. Támogatott Linux, BSD és macOS rendszereken a Perl most először a getentropy() rendszerhívást használja, ha ez nem elérhető, visszavált a /dev/urandom használatára, végső esetben pedig a belső állapot hash-ét veszi alapul.
A projekt ugyanakkor hangsúlyozza, hogy a Perl belső rand megvalósítása továbbra sem alkalmas kriptográfiai vagy más, biztonság szempontjából érzékeny felhasználásra.
Teljesítmény szempontjából több gyakori művelet is valamivel gyorsabb lett ebben a kiadásban, például a túlcsordulás nélküli egész összeadás, kivonás és szorzás azokon a rendszereken, ahol a fordító ezt megfelelően támogatja.
Optimalizálták továbbá a hash-ek létrehozását fordítási időben ismert, konstans sztring kulcsok listájából. Az alprogramok elején végzett szignatúra-feldolgozás is kevesebb futásidejű többletterhelést okoz.
Végül eltávolítottak egy régi, elavult viselkedést. Már nem engedélyezett a goto használata úgy, hogy egy ciklus vagy blokk külső részéből közvetlenül annak törzsébe ugorjon a vezérlés; ezt a lehetőséget már a Perl 5.12 óta elavultnak jelölték.
További részletekért olvasd el a bejelentést, vagy nézd át a változások teljes listáját.
A Perl 5.44 megjelenésével hivatalosan is véget ért a Perl 5.40 ág támogatása. A fejlesztők a következő hetekben várják a Perl 5.45.1-et, amely a következő stabil ág első fejlesztői kiadása lesz. A következő nagy stabil Perl kiadást 2027 első felére tervezik.

