1
Perl 5.44 has been released, bringing several experimental and compatibility changes:
- Named parameters in subroutine signatures (e.g.,
sub foo ($name, :$email)) are now supported, allowing callers to pass arguments as name‑value pairs.- Combines multi‑variable
foreachloops with reference aliasing, enabling loops over key‑array pairs while aliasing the array.- Enhances the
/xxregex modifier: allows multi‑line, commented character classes, but now deprecates unescaped#or vertical whitespace inside bracketed classes, emitting warnings.- Unicode 17.0 support tightens identifier rules; about 160 characters previously accepted under
\ware rejected because they don’t meet XID_Start/Continue properties.- Security fixes for three CVEs (2026‑8376, 2026‑57432, 2026‑13221) addressing buffer‑overflow risks in
Perl_study_chunk, large pack/unpack structures, and regex trie optimization.- Changes the PRNG seeding on Linux, BSD, macOS to prefer
getentropy(), then/dev/urandom, then an internal hash; still not suitable for cryptographic use.- Performance tweaks speed up non‑overflowing integer arithmetic and hash creation from constant string keys; signature processing overhead is reduced.
- Deprecated
gotointo a loop/body (since Perl 5.12) is now disallowed.- Support for the Perl 5.40 branch ends; the next development release (Perl 5.45.1) is expected soon, with a major stable release slated for early 2027.