perldelta - what is new for perl v5.31.7
This document describes differences between the 5.31.6 release and the 5.31.7 release.
If you are upgrading from an earlier release such as 5.31.5, first read perl5316delta, which describes differences between 5.31.5 and 5.31.6.
A new experimental infix operator called isa
tests whether a given object is an instance of a given class or a class derived from it:
if( $obj isa Package::Name ) { ... }
For more detail see "Class Instance Operator" in perlop.
\p{user-defined}
properties now always override official Unicode onesPreviously, if and only if a user-defined property was declared prior to the compilation of the regular expression pattern containing it, its definition was used instead of any official Unicode property with the same name. Now, it always overrides the official property. This change could break existing code that relied (likely unwittingly) on the previous behavior. Without this fix, if Unicode released a new version with a new property that happens to have the same name as the one you had long been using, your program would break when you upgraded to a perl that used that new Unicode version. See "User-Defined Character Properties" in perlunicode. [GH #17205]
The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. Distributions on CPAN which require these modules will need to list them as prerequisites.
The core versions of these modules will now issue "deprecated"
-category warnings to alert you to this fact. To silence these deprecation warnings, install the modules in question from CPAN.
Note that these are (with rare exceptions) fine modules that you are encouraged to continue to use. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not usually on concerns over their design.
B::Debug is no longer shipped with Perl, you can still install it from CPAN.
B has been upgraded from version 1.77 to 1.78.
B::Deparse has been upgraded from version 1.51 to 1.52.
Compress::Raw::Bzip2 has been upgraded from version 2.090 to 2.093.
Compress::Raw::Zlib has been upgraded from version 2.090 to 2.093.
CPAN now points to version 2.27 instead of version 2.27-TRIAL2.
Devel::PPPort has been upgraded from version 3.55 to 3.56.
English has been upgraded from version 1.10 to 1.11.
ExtUtils::MakeMaker has been upgraded from version 7.38 to 7.42.
feature has been upgraded from version 1.56 to 1.57.
File::stat has been upgraded from version 1.08 to 1.09.
Filter::Simple has been upgraded from version 0.95 to 0.96.
FindBin is now a dual-life module.
IO::Compress has been upgraded from version 2.090 to 2.093.
Module::CoreList has been upgraded from version 5.20191120 to 5.20191220.
Net::Ping has been upgraded from version 2.71 to 2.72.
Opcode has been upgraded from version 1.44 to 1.45.
Storable has been upgraded from version 3.17 to 3.18.
fix to disallow vstring magic strings over 2GB.
Test::Simple has been upgraded from version 1.302169 to 1.302170.
Tie::Hash::NamedCapture has been upgraded from version 0.11 to 0.13.
VMS::Stdio has been upgraded from version 2.44 to 2.45.
warnings has been upgraded from version 1.45 to 1.46.
XS::APItest has been upgraded from version 1.04 to 1.05.
We have attempted to update the documentation to reflect the changes listed in this document. If you find any we have missed, send email to perlbug@perl.org.
Additionally, the following selected changes have been made:
Update BOUND and NBOUND definitions.
This node is like ANYOFHb, but is used when more than one leading byte is the same in all the matched code points.
ANYOFHb is used to avoid having to convert from UTF-8 to code point for something that won't match. It checks that the first byte in the UTF-8 encoded target is the desired one, thus ruling out most of the possible code points.
(S experimental::isa) This warning is emitted if you use the (isa
) operator. This operator is currently experimental and its behaviour may change in future releases of Perl.
Like __FILE__
and __LINE__
, the filename and line number returned here may be altered by the mechanism described at "Plain Old Comments (Not!)" in perlsyn.
It can be altered by the mechanism described at "Plain Old Comments (Not!)" in perlsyn.
It can be altered by the mechanism described at "Plain Old Comments (Not!)" in perlsyn.
Mention that you cannot return from do BLOCK
This is an experimental feature and is available from Perl 5.31.6 when enabled by use feature 'isa'
. It emits a warning in the experimental::isa
category.
Tests were added and changed to reflect the other additions and changes in this release. Furthermore, these significant changes were made:
Avoid some work on ASCII platforms
Speed up many regex tests on ASCII platform
Skip tests that don't work on EBCDIC
Configure
will now find recent versions of the Oracle Developer Studio compiler, which are found under /opt/developerstudio*
.
Prior to this patch, they only sometimes overrode.
Properly handle filled /il regnodes and multi-char folds
move the implementation of %-, %+ into core
Perl 5.31.7 represents approximately 4 weeks of development since Perl 5.31.6 and contains approximately 9,300 lines of changes across 450 files from 22 authors.
Excluding auto-generated files, documentation and release tools, there were approximately 5,200 lines of changes to 280 .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.31.7:
Ask Bjørn Hansen, brian d foy, Bryan Stenson, Chad Granum, Chris 'BinGOs' Williams, Dan Book, David Mitchell, Felipe Gasper, James E Keenan, Karl Williamson, Matthew Horsfall, Max Maischein, Nicolas R., Pali, Paul Evans, Ricardo Signes, Sawyer X, Stefan Seifert, Steve Hay, Tomasz Konojacki, Tony Cook, Vitali Peil.
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 http://www.perl.org/, the Perl Home Page.
If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V
, will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, 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.