perl5412delta - what is new for perl v5.41.2
This document describes differences between the 5.41.1 release and the 5.41.2 release.
If you are upgrading from an earlier release such as 5.41.0, first read perl5411delta, which describes differences between 5.41.0 and 5.41.1.
source::encoding
This allows you to declare that the portion of a program for the remainder of the lexical scope of this pragma is encoded either entirely in ASCII (for use source::encoding 'ascii'
) or if UTF-8 is allowed as well (for use source::encoding 'utf8'
). No other encodings are accepted. The second form is entirely equivalent to use utf8
, and may be used interchangeably with that.
The purpose of this pragma is to catch cases early where you forgot to specify use utf8
.
use source::encoding 'ascii'
is automatically enabled within the lexical scope of a use v5.41.0
or higher.
no source::encoding
turns off all this checking for the remainder of its lexical scope. The meaning of non-ASCII characters is then undefined.
B::Deparse has been upgraded from version 1.76 to 1.77.
Now understands the new ^^
operator (high-precedence xor).
Benchmark has been upgraded from version 1.25 to 1.26.
Devel::PPPort has been upgraded from version 3.72 to 3.73.
File::Spec has been upgraded from version 3.90 to 3.92.
locale has been upgraded from version 1.12 to 1.13.
Module::CoreList has been upgraded from version 5.20240620 to 5.20240720.
podlators
has been upgraded from version 5.01_02 to v6.0.2.
This distribution provides the Pod::Man and Pod::Text modules and the pod2man and pod2text command-line utilities. The distribution now uses semantic versioning for the package and module versions, with a v
prefix to work with Perl's packaging system. Pod::Man, in particular, has received a variety of improvements.
POSIX has been upgraded from version 2.21 to 2.22.
Storable has been upgraded from version 3.32 to 3.33.
threads has been upgraded from version 2.40 to 2.41.
utf8 has been upgraded from version 1.25 to 1.27.
Win32 has been upgraded from version 0.59 to 0.59_01.
Imported an upstream PR that fixes symbolic link support detection on 32-bit Windows. [GH #22393]
XS::APItest has been upgraded from version 1.36 to 1.37.
We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, open an issue at https://github.com/Perl/perl5/issues.
Additionally, the following selected changes have been made:
All forms of gv_fetchmeth()
are now documented together.
gv_autoload4
is now documented with gv_autoload_pv
and additional notes added.
The list of Steering Council and Core Team members have been updated, following the conclusion of the latest election on 2024-07-17.
Entries for $#
and $*
have been amended to note that use of them result in a compilation error, not a warning.
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.
Use of non-ASCII character 0x%X illegal when 'use source::encoding "ascii"' is in effect
(F) This pragma forbids non-ASCII characters within its scope.
(S experimental::class) This warning is emitted if you use the __CLASS__
keyword of use feature 'class'
. This keyword is currently experimental and its behaviour may change in future releases of Perl.
Separate installation (without overwriting installed modules) is now the default
Documentation is significantly enhanced
Tests were added and changed to reflect the other additions and changes in this release.
Calls to call_argv() with the G_DISCARD
flag set also ensure the SV parameters constructed from the argv
parameter are released before call_argv()
returns. Previously they were released on the next FREETMPS. [GH #22255]
chdir
now returns real booleans (as its documentation describes), not integers. This means the result of a failed chdir
now stringifies to ''
, not '0'
.
Perl 5.41.2 represents approximately 3 weeks of development since Perl 5.41.1 and contains approximately 4,100 lines of changes across 180 files from 13 authors.
Excluding auto-generated files, documentation and release tools, there were approximately 1,900 lines of changes to 95 .pm, .t, .c and .h files.
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.41.2:
Aaron Dill, Dagfinn Ilmari Mannsåker, Elvin Aslanov, Erik Huelsmann, Graham Knop, H.Merijn Brand, James E Keenan, Karen Etheridge, Karl Williamson, Lukas Mai, Philippe Bruhat (BooK), Russ Allbery, Tony Cook.
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.
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 information 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. Be sure to trim your bug down to a tiny but sufficient test case.
If the bug you are 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.
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.
The Changes file for an explanation of how to view exhaustive details on what changed.
The INSTALL file for how to build Perl.
The README file for general stuff.
The Artistic and Copying files for copyright information.