Perl 5.44 har släppts med experimentellt stöd för namngivna parametrar, förbättrad prestanda och stöd för Unicode 17. Den nya versionen innehåller även flera säkerhetsrättningar, strängare regler för Unicode-tecken och uppdateringar av språkets reguljära uttryck.

Programmeringsspråket Perl har fått en ny stabil version. Perl 5.44 innehåller bland annat experimentellt stöd för namngivna parametrar, bättre Unicode-hantering, flera prestandaförbättringar och rättningar av tre säkerhetsproblem.
Perl har funnits sedan slutet av 1980-talet och används fortfarande för bland annat systemadministration, textbearbetning, webbapplikationer och automatisering. Språket är särskilt känt för sina kraftfulla funktioner för att söka, tolka och förändra text.
Den nya versionen är den första stabila utgåvan i Perl 5.44-serien och kommer ungefär ett år efter Perl 5.42.
Funktioner kan få namngivna parametrar
En av de största nyheterna är experimentellt stöd för namngivna parametrar i funktioners signaturer.
Traditionellt skickas argument till Perl-funktioner i en bestämd ordning. Funktionen måste alltså veta att det första värdet betyder en viss sak och att det andra värdet betyder något annat.
Med namngivna parametrar kan anroparen i stället ange vad varje värde representerar. Det kan göra koden tydligare, särskilt i funktioner som tar emot många argument.
I stället för att bara skicka flera värden efter varandra kan programmeraren exempelvis ange namn som name, age eller address.
Funktionen är fortfarande experimentell. Det innebär att syntaxen och beteendet kan förändras i framtida Perl-versioner.
Flera variabler i samma loop
Perl 5.44 kombinerar även två andra experimentella funktioner: loopar med flera variabler och referensalias.
Det gör det möjligt att behandla flera relaterade värden under varje varv i en loop. En variabel kan samtidigt fungera som ett direkt alias till den ursprungliga informationen.
Det kan vara praktiskt när ett program exempelvis går igenom par bestående av en nyckel och en arrayreferens. Ändringar som görs genom aliaset kan då påverka den ursprungliga datastrukturen direkt.
De funktioner som krävs, refaliasing och declared_refs, är fortfarande experimentella och måste aktiveras uttryckligen.
Tydligare reguljära uttryck
Reguljära uttryck är mönster som används för att söka efter eller bearbeta text. De är en central del av Perl och används ofta för exempelvis loggfiler, konfigurationsfiler och automatiserad textanalys.
Perl har sedan tidigare modifieraren /xx, som gör det möjligt att formatera reguljära uttryck över flera rader och lägga till kommentarer.
I Perl 5.44 har denna funktion byggts ut genom det experimentella tillägget enhanced_xx. Teckenklasser inom hakparenteser kan nu delas upp på flera rader och innehålla kommentarer.
Perl kan också varna när delar av ett reguljärt uttryck verkar ha tolkats som en kommentar av misstag.
Samtidigt införs strängare regler. Ett #-tecken som inte föregås av ett omvänt snedstreck, eller radbrytningar som skrivs direkt inne i en teckenklass, betraktas nu som föråldrad syntax.
Äldre uttryck fortsätter tills vidare att fungera, men ger varningar. De bör uppdateras genom att exempelvis skriva \# eller använda en särskild sekvens som \n.
Stöd för Unicode 17
Perl 5.44 uppdaterar sitt stöd till Unicode 17.0.
Unicode är den internationella standard som gör det möjligt för datorer att hantera bokstäver, symboler och skriftsystem från stora delar av världen. Den omfattar allt från svenska tecken till arabiska, kinesiska, matematiska symboler och emoji.
Den nya Perl-versionen följer Unicode-reglerna mer strikt när tecken används i namn på variabler, funktioner, paket och namngivna grupper i reguljära uttryck.
Omkring 160 ovanliga tecken som tidigare accepterades av Perls bredare tolkning av \w får inte längre användas i sådana namn. Anledningen är att de inte uppfyller Unicode-egenskaperna XID_Start och XID_Continue, som definierar vilka tecken som bör få inleda eller fortsätta ett programmeringsnamn.
För de flesta programmerare får ändringen ingen märkbar effekt. Program som använder mycket ovanliga Unicode-tecken i namn kan däremot behöva ändras före en uppgradering.
Tre säkerhetsproblem har rättats
Perl 5.44 innehåller rättningar för tre rapporterade sårbarheter.
Den första, CVE-2026-8376, berör en felaktig beräkning av buffertstorlek i funktionen Perl_study_chunk. På 32-bitarsystem kunde felet orsaka heltalsöverflöde och leda till att data skrevs utanför det avsedda minnesområdet.
Den andra sårbarheten, CVE-2026-57432, påverkar hanteringen av mycket stora datastrukturer i funktionerna pack och unpack. Ett extremt stort repetitionsvärde kunde orsaka heltalsöverflöde och därefter buffertöverflöde.
Det tredje problemet, CVE-2026-13221, finns i reguljära uttrycksmotorns optimering av stora alternativlistor. Reguljära uttryck med fler än ungefär 65 000 alternativa grenar kunde fylla ett 16-bitarsfält och i vissa fall ge felaktiga matchningar.
Slumptalen får bättre startvärden
Perl ändrar även hur språkets interna slumptalsgenerator startas.
På Linux, BSD och macOS försöker Perl nu i första hand använda systemanropet getentropy(). Om det inte är tillgängligt används /dev/urandom. Som sista reserv används ett hashvärde som bygger på programmets interna tillstånd.
Detta ger bättre och mer oförutsägbara startvärden än tidigare lösningar.
Perl-utvecklarna betonar dock att funktionen rand fortfarande inte är avsedd för kryptografi, lösenord, säkerhetstokens eller andra säkerhetskritiska ändamål. Sådana program bör använda en särskild kryptografiskt säker slumptalsgenerator.
Vissa operationer går snabbare
Perl 5.44 innehåller flera mindre prestandaförbättringar.
Heltalsaddition, subtraktion och multiplikation kan nu utföras något snabbare på system där kompilatorn har stöd för de optimeringar som behövs.
Det har även blivit snabbare att skapa hash-tabeller från listor där nycklarna består av konstanta textsträngar som redan är kända när programmet kompileras.
Behandlingen av funktionssignaturer har också optimerats. Funktioner som använder signaturer får därför något lägre belastning när de anropas.
Varje enskild förbättring är relativt liten, men tillsammans kan de ge märkbara vinster i större program eller kod som körs mycket ofta.
Gammalt beteende tas bort
Perl 5.44 tar även bort ett beteende som varit markerat som föråldrat sedan Perl 5.12.
Det är inte längre tillåtet att använda goto för att hoppa direkt in i en loop eller ett kodblock från utsidan.
Sådana hopp kan göra ett programs körning svår att förutsäga eftersom de kringgår den normala vägen in i kodblocket. Förändringen gör språket mer konsekvent och minskar risken för svårfunna fel.
Perl 5.40 har nått slutet av sin supportperiod
I samband med att Perl 5.44 släpps avslutas den officiella supporten för Perl 5.40-serien.
Den som fortfarande använder Perl 5.40 bör därför planera en uppgradering. Äldre Perl-program bör testas noggrant, särskilt om de använder experimentella funktioner, ovanliga Unicode-tecken eller avancerade reguljära uttryck.
Nästa utvecklingsversion väntas bli Perl 5.45.1. Den kommer att ligga till grund för nästa stabila huvudversion, som enligt planerna ska släppas under första halvåret 2027.
Perl 5.44 är ingen dramatisk ombyggnad av språket, men versionen moderniserar flera viktiga delar. Namngivna parametrar kan göra funktioner enklare att förstå, Unicode-stödet blir mer korrekt och flera vanliga operationer har effektiviserats.
Samtidigt visar säkerhetsrättningarna varför det är viktigt att hålla även mogna och väletablerade programmeringsspråk uppdaterade.
https://www.nntp.perl.org/group/perl.perl5.porters/2026/07/msg271063.html
| Version: | Perl 5.44 |
| Typ: | Stabil produktionsversion |
| Licens: | Artistic License eller GNU GPL |
| Unicode: | Unicode 17.0 |
| Viktig nyhet: | Experimentellt stöd för namngivna parametrar i funktionssignaturer |
| Reguljära uttryck: |
Utökat stöd för läsbara uttryck med /xx och
enhanced_xx
|
| Prestanda: | Snabbare heltalsoperationer, hash-skapande och behandling av signaturer |
| Säkerhet: | Tre säkerhetsproblem har rättats |
| Slumptal: |
Förbättrad initiering via getentropy() och
/dev/urandom
|
| Support: | Perl 5.40-serien har nått slutet av sin supportperiod |
| Webbplats: | perl.org |

