PERL5202DELTA(1perl)
β¨ NAME β¨
perl5202delta β what is new for perl v5.20.2 π
π DESCRIPTION π
Okay so bestie, this doc? It's literally describing the differences between the 5.20.1 release and the 5.20.2 release. That's the whole vibe.
If you're upgrading from an earlier release such as 5.20.0, first read perl5201delta, which describes differences between 5.20.0 and 5.20.1. No skipping, okay? It's giving required reading. π
π« Incompatible Changes π«
There are no changes intentionally incompatible with 5.20.1. If any exist, they are bugs, and we request that you submit a report. See "Reporting Bugs" below. Periodt. If you find one, tell the perl peeps, fr fr.
π¦ Modules and Pragmata π¦
π Updated Modules and Pragmata π
attributesβ upgraded from version0.22to0.23. The usage ofmemEQsin the XS has been corrected.[GH #14072] <https://github.com/Perl/perl5/issues/14072>Data::Dumperβ upgraded from version2.151to2.151_01. FixesCVE-2014-4330by adding a configuration variable/option to limit recursion when dumping deep data structures. Security slay! π₯Errnoβ upgraded from version1.20_03to1.20_05. Warnings when building the XS on Windows with the Visual C++ compiler are now avoided. Bye, warnings! β¨featureβ upgraded from version1.36to1.36_01. Thepostdereffeature has now been documented. This feature was actually added in Perl5.20.0but was accidentally omitted from the feature documentation until now. Better late than never, bestie.IO::Socketβ upgraded from version1.37to1.38. Document the limitations of theconnected()method.[GH #14199] <https://github.com/Perl/perl5/issues/14199>Module::CoreListβ upgraded from version5.020001to5.20150214. The list of Perl versions covered has been updated.PathToolsβ upgraded from version3.48to3.48_01. A warning from thegcccompiler is now avoided when building the XS.PerlIO::scalarβ upgraded from version0.18to0.18_01. Reading from a position well past the end of the scalar now correctly returns end of file.[GH #14342] <https://github.com/Perl/perl5/issues/14342>Seeking to a negative position still fails, but no longer leaves the file position set to a negation location.eof()on aPerlIO::scalarhandle now properly returns true when the file position is past the2GBmark on 32-bit systems. 2GB? On 32-bit? Big yikes, but fixed. πStorableβ upgraded from version2.49to2.49_01. Minor grammatical change to the documentation only. Grammar check, periodt. πVMS::DCLsymβ upgraded from version1.05to1.05_01. Minor formatting change to the documentation only.VMS::Stdioβ upgraded from version2.4to2.41. Minor formatting change to the documentation only.
π Documentation π
π New Documentation π
perlunicook
This document, by Tom Christiansen, provides examples of handling Unicode in Perl. Unicode bestie! πβ¨
βοΈ Changes to Existing Documentation βοΈ
perlexperiment
- Added reference to subroutine signatures. This feature was actually added in Perl
5.20.0but was accidentally omitted from the experimental feature documentation until now.
perlpolicy
- The process whereby features may graduate from experimental status has now been formally documented. Glow-up process, officially documented. π
perlsyn
- An ambiguity in the documentation of the ellipsis statement has been corrected.
[GH #14054] <https://github.com/Perl/perl5/issues/14054>
π©Ί Diagnostics π©Ί
The following additions or changes have been made to diagnostic output, including warnings and fatal error messages. For the complete list of diagnostic messages, see perldiag. Go read perldiag for the full scoop.
π©Ή Changes to Existing Diagnostics π©Ή
Bad symbol for scalaris now documented. This error is not new, but was not previously documented here.Missing right brace on \N{}is now documented. This error is not new, but was not previously documented here.
π§ͺ Testing π§ͺ
- The test script
re/rt122747.thas been added to verify that[GH #14081] <https://github.com/Perl/perl5/issues/14081>remains fixed. Regression test, we love to see it. π§ͺ
π₯οΈ Platform Support π₯οΈ
π Regained Platforms π
IRIX and Tru64 platforms are working again. (Some make test failures remain.) Welcome back, queens! π«Ά
π Selected Bug Fixes π
- AIX now sets the length in
getsockoptcorrectly.[GH #13484] <https://github.com/Perl/perl5/issues/13484>,[cpan #91183] <https://rt.cpan.org/Ticket/Display.html?id=91183>,[cpan #85570] <https://rt.cpan.org/Ticket/Display.html?id=85570> - In Perl
5.20.0,$^Naccidentally had the internal UTF8 flag turned off if accessed from a code block within a regular expression, effectively UTF8-encoding the value. This has been fixed.[GH #14211] <https://github.com/Perl/perl5/issues/14211> - Various cases where the name of a sub is used (autoload, overloading, error messages) used to crash for lexical subs, but have been fixed. No more crash era. π
- An assertion failure when parsing
sortwith debugging enabled has been fixed.[GH #14087] <https://github.com/Perl/perl5/issues/14087> - Loading UTF8 tables during a regular expression match could cause assertion failures under debugging builds if the previous match used the very same regular expression.
[GH #14081] <https://github.com/Perl/perl5/issues/14081> - Due to a mistake in the string-copying logic, copying the value of a state variable could instead steal the value and undefine the variable. This bug, introduced in Perl
5.20, would happen mostly for long strings (1250chars or more), but could happen for any strings under builds with copy-on-write disabled.[GH #14175] <https://github.com/Perl/perl5/issues/14175> - Fixed a bug that could cause perl to execute an infinite loop during compilation.
[GH #14165] <https://github.com/Perl/perl5/issues/14165> - On Win32, restoring in a child pseudo-process a variable that was
local()ed in a parent pseudo-process before theforkhappened caused memory corruption and a crash in the child pseudo-process (and therefore OS process).[GH #8641] <https://github.com/Perl/perl5/issues/8641> - Tainted constants evaluated at compile time no longer cause unrelated statements to become tainted.
[GH #14059] <https://github.com/Perl/perl5/issues/14059> - Calling
writeon a format with a^**field could produce a panic insv_chop()if there were insufficient arguments or if the variable used to fill the field was empty.[GH #14255] <https://github.com/Perl/perl5/issues/14255> - In Perl
5.20.0,sort CORE::fakewhere 'fake' is anything other than a keyword started chopping of the last 6 characters and treating the result as a sort sub name. The previous behaviour of treatingCORE::fakeas a sort sub name has been restored.[GH #14323] <https://github.com/Perl/perl5/issues/14323> - A bug in regular expression patterns that could lead to segfaults and other crashes has been fixed. This occurred only in patterns compiled with
/i, while taking into account the current POSIX locale (this usually means they have to be compiled within the scope ofuse locale), and there must be a string of at least128consecutive bytes to match.[GH #14389] <https://github.com/Perl/perl5/issues/14389> qr/@array(?{block})/no longer dies withBizarre copy of ARRAY.[GH #14292] <https://github.com/Perl/perl5/issues/14292>gmtimeno longer crashes with not-a-number values.[GH #14365] <https://github.com/Perl/perl5/issues/14365>- Certain syntax errors in substitutions, such as
s/${<>{})//, would crash, and had done so since Perl5.10. (In some cases the crash did not start happening until Perl5.16.) The crash has, of course, been fixed.[GH #14391] <https://github.com/Perl/perl5/issues/14391> - A memory leak in some regular expressions, introduced in Perl
5.20.1, has been fixed.[GH #14236] <https://github.com/Perl/perl5/issues/14236> formline("@...", "a");would crash. TheFF_CHECKNLcase inpp_formline()didn't set the pointer used to mark the chop position, which led to theFF_MOREcase crashing with a segmentation fault. This has been fixed.[GH #14388] <https://github.com/Perl/perl5/issues/14388>[GH #14425] <https://github.com/Perl/perl5/issues/14425>- A possible buffer overrun and crash when parsing a literal pattern during regular expression compilation has been fixed.
[GH #14416] <https://github.com/Perl/perl5/issues/14416>
β οΈ Known Problems β οΈ
- It is a known bug that lexical subroutines cannot be used as the
SUBNAMEargument tosort. This will be fixed in a future version of Perl. Not yet, bestie. Patience. π
π§ Errata From Previous Releases π§
- A regression has been fixed that was introduced in Perl
5.20.0(fixed in Perl5.20.1as well as here) in which a UTF-8 encoded regular expression pattern that contains a single ASCII lowercase letter does not match its uppercase counterpart.[GH #14051] <https://github.com/Perl/perl5/issues/14051>
π Acknowledgements π
Perl 5.20.2 represents approximately 5 months of development since Perl 5.20.1 and contains approximately 6,300 lines of changes across 170 files from 34 authors. Iconic. β¨
Excluding auto-generated files, documentation and release tools, there were approximately 1,900 lines of changes to 80 .pm, .t, .c and .h files.
Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.20.2:
Aaron Crane, Abigail, Andreas Voegele, Andy Dougherty, Anthony Heading, Aristotle Pagaltzis, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, Doug Bell, Ed J, Father Chrysostomos, Glenn D. Golden, H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, Jim Cromie, Karen Etheridge, Karl Williamson, kmx, Matthew Horsfall, Max Maischein, Peter Martini, Rafael Garcia-Suarez, Ricardo Signes, Shlomi Fish, Slaven Rezic, Steffen MΓΌller, Steve Hay, Tadeusz SoΕnierz, Tony Cook, Yves Orton, Γvar ArnfjΓΆrΓ° Bjarmason.
The list above is almost certainly incomplete as it is 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.
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 (bestie... we need to talk) π
Okay so if you find something you think is a bug, here's the vibe: first, go check the articles that got posted recently to the comp.lang.perl.misc newsgroup, and also peek the perl bug database at https://rt.perl.org/ . There might also be tea at http://www.perl.org/ , which is the Perl Home Page. Like, maybe someone already found it. Always check first, it's giving considerate. π
If you believe you've got an unreported bug though? Run the perlbug program that comes with your release. And please, for the love of everything, trim your bug down to a tiny but sufficient test case. A tiny one. Sufficient. Both. π Your bug report, plus the output of perl -V, gets sent off to perlbug@perl.org so the Perl porting team can analyse it. That's the whole flow, no cap.
β¨ If the bug you're reporting has security implications β like, the kind that makes it inappropriate to send to a publicly archived mailing list β then send it to perl5-security-report@perl.org instead. This points to a closed subscription unarchived mailing list, and it includes all the core committers. They're the ones who can help assess the impact of issues, figure out a resolution, and help co-ordinate the release of patches to mitigate or fix the problem across all platforms on which Perl is supported. π
π¨ And listen β only use that address for security issues in the Perl core. Not for modules independently distributed on CPAN. Different thing entirely, bestie, don't do it.
π SEE ALSO (the required reading, but make it cute) π
- The
Changesfile β for an explanation of how to view exhaustive details on what changed. Exhaustive. Every last crumb. π - The
INSTALLfile β for how to build Perl. Building her from scratch, iconic. π§ - The
READMEfile β for general stuff. Just... general stuff. The vibes section. π - The
ArtisticandCopyingfiles β for copyright information. Legal girlies rise. π
And that's the whole page, bestie!! π This was perl v5.44.0 β the PERL5202DELTA(1perl) page, dated 2026-10-17 β and yes that's the version and the date right there in the footer, I would never leave you hanging on the metadata. Go forth, read your deltas, report your bugs with tiny sufficient test cases, and slay. πβ¨
π¦ where this page comes from
- arch rolling: perl 5.44.0-1 Β· Artistic-1.0-Perl AND GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms