URL:     https://linuxfr.org/news/perl-5-44-est-sorti
Title:   Perl 5.44 est sorti
Authors: Emmanuel Seyman
         Benoît Sibaud
Date:    2026-07-19T17:37:13+02:00
License: CC By-SA
Tags:    perl
Score:   12


Perl est un langage de programmation créé par Larry Wall en 1987 (_Artistic License_ et GPL). La version 5.44.0 est parue le 15 juillet 2026. La précédente 5.42.0 était initialement parue en juillet 2025, avec un dernier correctif 5.42.2 publié en mars 2026.



Parmi les améliorations principales :



- paramètres nommés dans les signatures
- foreach avec plusieurs variables peuvent maintenant utiliser des alias de références
- fonctionnement amélioré des motifs d’expressions régulières avec /xx
- prise en charge d’Unicode 17.0
- nouvelle source d’entropie pour l’initialisation du générateur de nombres pseudo-aléatoires



Mais aussi 3 correctifs sécurité, quelques incompatibilités, des améliorations de performances, de documentation, etc. Reportez-vous aux notes de version pour avoir tous les détails. La suite de la dépêche décrit les améliorations principales et les correctifs sécurité.

----

[Perl sur Wikipedia](https://fr.wikipedia.org/wiki/Perl_(langage))
[Guide Perl - Débuter et progresser en Perl](https://formation-perl.fr/guide-perl.html)
[L'association Les Mongueurs de Perl](https://www.mongueurs.net/)
[Perl 5.44.0 Release notes](https://perldoc.perl.org/5.44.0/perldelta)

----

# Améliorations principales
## Paramètres nommés dans les signatures
Cette version de Perl apporte la possibilité de passer des paramètres de fonction par paire nom/valeur plutôt que par position.



```perl
sub f ($x, $y, :$alpha, :$beta = undef) { ... }
f( 123, 456, alpha => 789 );
```





Cette fonctionalité est considérée comme étant experimentale et est décrité en détail dans [la partie "Signatures" de perlsub](https://metacpan.org/dist/perl/view/pod/perlsub.pod#Signatures).


## Les foreach avec plusieurs variables peuvent maintenant utiliser des alias de références
Perl version 5.22 avait apporté des alias à des références, permettant à la variable d’itération d’une boucle foreach de créer de nouveaux alias à une référence. Avec Perl 5.36, on pouvait itérer sur plusieurs variables à la fois dans une boucle foreach. Dans cette version de Perl, ces deux fonctionnalités peuvent être utilisées ensemble, ce qui permet d’avoir plusieurs variables d’itération, certaines pouvant être des alias de références.



```perl
use v5.44;
use feature qw( refaliasing declared_refs );
my %hash = (
    one => [1],
    two => [2, 2],
);
foreach my ( $key, \@items ) ( %hash ) {
    say "The $key array contains: @items";
}
```



## Fonctionnement amélioré des motifs d’expressions régulières avec /xx
À titre expérimental, le modificateur de motif /xx permet aux classes de caractères (par exemple, [a-zA-Z]) de s’étendre sur plusieurs lignes et de contenir des commentaires ; il signale également les cas potentiels où une partie du motif a été interprétée comme un commentaire au lieu de l’interprétation voulue. Ce comportement est activé par la directive `use feature "enhanced_xx"`. Voir la section « /x et /xx » dans la documentation [perlre](https://metacpan.org/dist/perl/view/pod/perlre.pod#%2Fx-and-%2Fxx).


## Prise en charge d’Unicode 17.0
Le support Unicode de Perl passe à la [version 17](https://www.unicode.org/versions/Unicode17.0.0/).


## Nouvelle source d’entropie pour l’initialisation du PRNG
Perl utilise désormais l’appel système `getentropy()` pour obtenir des octets aléatoires adaptés à l’initialisation de son PRNG interne. Auparavant, Perl lisait des octets bruts depuis le périphérique `/dev/urandom`. Perl procède désormais à cette initialisation dans l’ordre suivant (en passant à l’étape suivante en cas d’échec) :


  * `getentropy()` sur les systèmes prenant en charge cet appel (Linux, BSD, macOS)
  * `/dev/urandom` sur les systèmes qui en disposent
  * Une empreinte (hash) de variables d’état internes : temps Unix, identifiant de processus et valeur de pointeur


Notez que le PRNG interne ne convient toujours pas aux applications nécessitant une sécurité élevée. Consultez la section « rand EXPR » dans [perlfunc](https://metacpan.org/dist/perl/view/pod/perlfunc.pod#rand-EXPR) pour les aspects liés à la sécurité.


# Securité



## CVE-2026-8376 - Débordement de tampon dans Perl_study_chunk
La fonction Perl_study_chunk, située dans regcomp_study.c, vérifiait la taille du tampon de sous-chaîne concaténée en nombre de caractères plutôt qu’en octets. Dans une version 32 bits, ceci peut entraîner un débordement de tampon, provoquant des écritures hors limites.


## CVE-2026-57432 - Débordement de tampon dans S_measure_struct
Si l’on appelle `pack` ou `unpack` pour traiter une structure dont la taille calculée est trop importante pour tenir en mémoire, un dépassement d’entier peut arriver et entraîner un débordement de tampon. Ce cas de figure se produit généralement lorsque l’on utilise un nombre élevé comme facteur de répétition pour un élément.


## CVE-2026-13221 - Regex trie 16-bit field overflow
L’optimisation de type « trie » (arbre de recherche) du moteur d’expressions régulières pouvait subir un dépassement lors du traitement d’une alternance comportant plus de 65 000 branches. Cela pouvait entraîner à la fois des faux positifs et des faux négatifs pour ces expressions régulières.
