NAME
perl5412delta - what is new for perl v5.41.2
DESCRIPTION
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.
Core Enhancements
New pragma 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.
Modules and Pragmata
Updated Modules and Pragmata
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.
Documentation
Changes to Existing Documentation
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:
perlapi
All forms of
gv_fetchmeth()
are now documented together.gv_autoload4
is now documented withgv_autoload_pv
and additional notes added.
perlgov
The list of Steering Council and Core Team members have been updated, following the conclusion of the latest election on 2024-07-17.
perlvar
Entries for
$#
and$*
have been amended to note that use of them result in a compilation error, not a warning.
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.
New Diagnostics
New Errors
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.
New Warnings
-
(S experimental::class) This warning is emitted if you use the
__CLASS__
keyword ofuse feature 'class'
. This keyword is currently experimental and its behaviour may change in future releases of Perl.
Utility Changes
Porting/test-dist-modules.pl
Separate installation (without overwriting installed modules) is now the default
Documentation is significantly enhanced
Testing
Tests were added and changed to reflect the other additions and changes in this release.
Internal Changes
Calls to call_argv() with the
G_DISCARD
flag set also ensure the SV parameters constructed from theargv
parameter are released beforecall_argv()
returns. Previously they were released on the next FREETMPS. [GH #22255]
Selected Bug Fixes
chdir
now returns real booleans (as its documentation describes), not integers. This means the result of a failedchdir
now stringifies to''
, not'0'
.
Acknowledgements
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.
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 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.
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.
SEE ALSO
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.