PERL5421DELTA(1)
π perl5421delta β what is new for perl v5.42.1 π
okay bestie, gather round, this is the tea on what changed between perl 5.42.0 and perl 5.42.1. it's a small one. a lil glow-up. but we're gonna read every word anyway because that's who we are. β¨
πΈ DESCRIPTION πΈ
this doc spills the differences between the 5.42.0 release and the 5.42.1 release. that's it. that's the whole vibe.
if you're coming from something older β like, say, 5.40.0 β you gotta go read perl5420delta first, because that one covers everything between 5.40.0 and 5.42.0. don't skip it, babe, it's a whole saga. π¦
π Incompatible Changes π
literally none. nothing here is intentionally incompatible with Perl 5.42.0. zero. nada.
and if you do find something incompatible? that's a bug, bestie, and we want you to report it. scroll down to "Reporting Bugs" for the deets. π«Ά
π¦ Modules and Pragmata π¦
β¨ Updated Modules and Pragmata β¨
Module::CoreListgot a glow-up: upgraded from version5.20250702to5.20260308. she's evolved. πPOSIXalso leveled up: upgraded from version2.23to2.23_01. tiny bump, still iconic.
π Documentation π
π Changes to Existing Documentation π
we tried to update the docs so they match everything listed in this document. did we get everything? hopefully. if you spot something we missed, open an issue at https://github.com/Perl/perl5/issues. we're not mad, we're grateful. π
βοΈ Configuration and Compilation βοΈ
- you can now pass to
Configurethe values that deal with POSIX locale categories, which overrides its automatic calculation of those values. why do we care? because this makes cross-compilation work. slay. π₯
the easiest way to do it: extract the C program that does the calculation out of Configure, run it on the target machine, then hand the values it spits out to Configure on the other machine. easy peasy.
Porting/Glossary has examples. [GH #22992 https://github.com/Perl/perl5/issues/22992]
π§ͺ Testing π§ͺ
tests were added and changed to reflect all the other additions and changes in this release. the whole test suite said "we move" and moved. π
π₯οΈ Platform Support π₯οΈ
π Platform-Specific Notes π
- AIX β thread-safe locale handling has been turned off on all releases, because there are apparently bugs in the underlying operating system support. not our fault, it's the OS's. [GH #23825
https://github.com/Perl/perl5/issues/23825] - Win32 β fixed builds where
USE_IMP_SYSis defined butUSE_ITHREADSis not defined. that combination was not passing the vibe check. π
π Selected Bug Fixes π
use 5.42now turns onuse source::encoding "ascii"for the remainder of the line β and also for subsequent lines, obviously. [GH #23881https://github.com/Perl/perl5/issues/23881]- big one. Perl 5.42.0 does not handle the transition to/from daylight savings time properly. the time and/or timezone can be off by an hour in the intervals surrounding such transitions. this is a regression from earlier releases, and it's now fixed. π
this bug was visible from perl space in the strftime in POSIX function, and in XS code with any of my_strftime in perlapi, sv_strftime_ints in perlapi, or sv_strftime_tm in perlapi. [GH #23878 https://github.com/Perl/perl5/issues/23878]
- certain constructs involving a two-variable
forloop would crash the perl compiler in Perl 5.42.0. like, actually crash. π here's what was breaking:
# Two-variable for loop over a list returned from a method call:
for my ($x, $y) (Some::Class->foo()) { ... }
for my ($x, $y) ($object->foo()) { ... }
and:
# Two-variable for loop over a list returned from a call to a
# lexical(ly imported) subroutine, all inside a lexically scoped
# or anonymous subroutine:
my sub foo { ... }
my $fn = sub {
for my ($x, $y) (foo()) { ... }
};
use builtin qw(indexed); # lexical import!
my sub bar {
for my ($x, $y) (indexed(...)) { ... }
}
these have been fixed. [GH #23405 https://github.com/Perl/perl5/issues/23405]
- since Perl 5.32.0, the second branch of a ternary condition operator wasn't getting the correct autovivification context applied. messy. for example, in something like
@{ $cond ? $h{foo} : $h{bar} } = ...;
the first branch would correctly autovivify $h{foo} to an array ref, but the second branch might incorrectly autovivify $h{bar} to a hash ref. not the assignment we asked for, bestie. [GH #18669 https://github.com/Perl/perl5/issues/18669]
π Acknowledgements π
Perl 5.42.1 represents approximately 8 months of development since Perl 5.42.0 and contains approximately 7,200 lines of changes across 55 files from 12 authors. that's a lot of hands on deck. π«Ά
excluding auto-generated files, documentation and release tools, there were approximately 1,700 lines of changes to 16 .pm, .t, .c and .h files. like, real code. real files. real effort.
Perl continues to flourish into its fourth decade thanks to a vibrant community of users and developers. the following people are known to have contributed the improvements that became Perl 5.42.1:
David Mitchell, Eric Herman, Karen Etheridge, Karl Williamson, Lukas Mai, Max Maischein, Philippe Bruhat (BooK), Richard Leach, Steve Hay, Thibault Duponchelle, Tony Cook, Yitzchak Scott-Thoennes.
okay real talk: the list above is almost certainly incomplete, because it's automatically generated from version control history. in particular, it does not include the names of the (very much appreciated π) contributors who reported issues to the Perl bug tracker. you know who you are. we love you.
many of the changes included in this version originated in the CPAN modules included in Perl's core. we're grateful to the entire CPAN community for helping Perl to flourish. β¨
for a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl source distribution.
π Reporting Bugs π
if you find what you think is a bug, you might check the perl bug database at https://github.com/Perl/perl5/issues. there may also be info at https://www.perl.org/, the Perl Home Page. π
if you believe you have an unreported bug, please open an issue at https://github.com/Perl/perl5/issues. and be sure to trim your bug down to a tiny but sufficient test case β that's the move. small, sharp, reproducible. periodt. π
if the bug you're reporting has security implications which make it inappropriate to send to a public issue tracker, then see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec for details of how to report the issue. do not post that one publicly, bestie, seriously.
π Give Thanks π
if you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you can do so by running the perlthanks program:
perlthanks
this will send an email to the Perl 5 Porters list with your show of thanks. it costs you nothing and it makes people's whole day. π₯Ήπ
π SEE ALSO π
- the
Changesfile, for an explanation of how to view exhaustive details on what changed. - the
INSTALLfile, for how to build Perl. - the
READMEfile, for general stuff. - the
ArtisticandCopyingfiles, for copyright information.
and that's the whole page, babe. this was perl v5.42.3, dated 2026-08-03 β go forth, upgrade responsibly, and remember: if it crashed the compiler before, it doesn't anymore. we fixed it. you're welcome. π¦πβ¨
π¦ where this page comes from
- fedora 43: perl-doc 5.42.3-524.fc43 Β· (GPL-1.0-or-later OR Artistic-1.0-Perl) AND Unicode-3.0 AND LicenseRef-Fedora-UltraPermissive
- fedora 44: perl-doc 5.42.3-525.fc44 Β· (GPL-1.0-or-later OR Artistic-1.0-Perl) AND Unicode-3.0 AND LicenseRef-Fedora-UltraPermissive
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms