5 perldelta - what is new for perl v5.21.10
9 This document describes differences between the 5.21.9 release and the 5.21.10
12 If you are upgrading from an earlier release such as 5.21.8, first read
13 L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
15 =head1 Incompatible Changes
17 =head2 C<(?[...])> operators now follow standard Perl precedence
19 This experimental feature allows set operations in regular expression
20 patterns. Prior to this, the intersection operator had the same
21 precedence as the other binary operators. Now it has higher precedence.
22 This could lead to different outcomes than existing code expects (though
23 the documentation has always noted that this change might happen,
24 recommending fully parenthesizing the expressions). See
25 L<perlrecharclass/Extended Bracketed Character Classes>.
27 =head1 Performance Enhancements
34 C<utf8::native_to_unicode()> and
35 C<utf8::unicode_to_native()> (see L<utf8>)
36 are now optimized out on ASCII platforms.
37 There is now not even a minimal performance hit in writing code portable
38 between ASCII and EBCDIC platforms.
42 =head1 Modules and Pragmata
44 =head2 Updated Modules and Pragmata
50 L<B> has been upgraded from version 1.56 to 1.57.
54 L<B::Deparse> has been upgraded from version 1.33 to 1.34.
56 Deparse C<$#_> as that instead of as C<$#{_}>.
57 L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947>
61 L<Carp> has been upgraded from version 1.35 to 1.36.
65 L<CPAN> has been upgraded from version 2.05 to 2.10.
71 Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
72 seen on Strawberry Perl 5.20.1.
76 Fix C<chdir()> after building dependencies bug.
80 Introduce experimental support for plugins/hooks.
84 Integrate the App::Cpan sources.
88 Do not check recursion on optional dependencies.
92 Sanity check META.yml to contain a hash.
93 L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
99 L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
103 L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
107 L<DB> has been upgraded from version 1.07 to 1.08.
111 L<Devel::PPPort> has been upgraded from version 3.28 to 3.31.
115 L<DynaLoader> has been upgraded from version 1.31 to 1.32.
119 L<Encode> has been upgraded from version 2.70 to 2.72.
123 L<encoding> has been upgraded from version 2.13 to 2.14.
127 L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
131 L<locale> has been upgraded from version 1.05 to 1.06.
135 L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
139 L<Module::CoreList> has been upgraded from version 5.20150220 to 5.20150320.
143 L<parent> has been upgraded from version 0.228 to 0.232.
145 No changes to installed files other than the version bump.
149 The PathTools modules have been upgraded from version 3.54 to 3.55.
153 L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
157 L<POSIX> has been upgraded from version 1.51 to 1.52.
161 L<re> has been upgraded from version 0.31 to 0.32.
165 L<sigtrap> has been upgraded from version 1.07 to 1.08.
169 L<Term::Complete> has been upgraded from version 1.402 to 1.403.
173 L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
177 L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
179 No changes to installed files other than the version bump.
183 L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
187 L<threads> has been upgraded from version 1.96_001 to 2.01.
191 L<Unicode::Collate> has been upgraded from version 1.11 to 1.12.
195 L<utf8> has been upgraded from version 1.14 to 1.15.
201 =head2 Changes to Existing Documentation
209 Documentation has been added regarding the special floating point values C<Inf>
214 =head3 L<perlexperiment>
220 Removed note about C<\s> matching C<VT> now that it is no longer experimental.
224 Added note that C<use re 'strict'> has been introduced experimentally.
234 The documentation of what to expect to see in future maintenance releases has
235 been updated. Essentially the same types of changes will be included as before
236 but with fewer changes that don't affect the installation or execution of perl.
242 The following additions or changes have been made to diagnostic output,
243 including warnings and fatal error messages. For the complete list of
244 diagnostic messages, see L<perldiag>.
246 =head2 New Diagnostics
254 L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
256 (F) The pattern looks like a {min,max} quantifier, but the min or max could not
257 be parsed as a valid number - either it has leading zeroes, or it represents
258 too big a number to cope with. The S<<-- HERE> shows where in the regular
259 expression the problem was discovered. See L<perlre>.
269 Tests for performance issues have been added in the file F<t/perf/taint.t>.
273 =head1 Platform Support
279 =item z/OS running EBCDIC Code Page 1047
281 Core perl now works on this EBCDIC platform. Early perls also worked,
282 but, even though support wasn't officially withdrawn, recent perls would
283 not compile and run well. Perl v5.20 would work, but had many bugs
284 which have now been fixed. Many CPAN modules that ship with Perl still
285 fail tests, including Pod::Simple. However the version of Pod::Simple
286 currently on CPAN should work; it was fixed too late to include in
287 Perl v5.22. Work is under way to fix many of the still-broken CPAN
288 modules, which likely will be installed on CPAN when completed, so that
289 you may not have to wait until v5.24 to get a working version.
293 =head2 Platform-Specific Notes
299 The archname now distinguishes use64bitint from use64bitall.
303 =head1 Internal Changes
309 Macros have been created to allow XS code to better manipulate the POSIX
310 locale category C<LC_NUMERIC>.
311 See L<perlapi/Locale-related functions and macros>.
315 The previous C<atoi> et al replacement function, C<grok_atou>, has now been
316 superseded by C<grok_atoUV>. See L<perlclib> for details.
320 =head1 Selected Bug Fixes
326 Repeated global pattern matches in scalar context on large tainted
327 strings were exponentially slow depending on the current match
328 position in the string.
329 L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202>
333 Various crashes due to the parser getting confused by syntax errors have
335 L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801>
336 L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802>
337 L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955>
338 L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995>
342 C<split> in the scope of lexical $_ has been fixed not to fail assertions.
343 L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763>
347 C<my $x : attr> syntax inside various list operators no longer fails
349 L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817>
353 An @ sign in quotes followed by a non-ASCII digit (which is not a valid
354 identifier) would cause the parser to crash, instead of simply trying the @
355 as literal. This has been fixed.
356 L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963>
360 C<*bar::=*foo::=*glob_with_hash> has been crashing since 5.14, but no
362 L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847>
366 C<foreach> in scalar context was not pushing an item on to the stack,
367 resulting in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would
368 print 5.) It has been fixed to return C<undef>.
369 L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004>
373 A memory leak introduced in Perl 5.21.6 has been fixed.
374 L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922>
378 A regression in the behaviour of the C<readline> built-in function, caused by
379 the introduction of the C<< <<>> >> operator, has been fixed.
380 L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990>
384 Several cases of data used to store environment variable contents in core C
385 code being potentially overwritten before being used have been fixed.
386 L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748>
390 =head1 Known Problems
396 A goal is for Perl to be able to be recompiled to work reasonably well
397 on any Unicode version. In v5.22, though, the earliest such version is
398 Unicode 5.1 (current is 7.0).
408 Encode and encoding are mostly broken.
412 Many cpan modules that are shipped with core show failing tests
416 C<pack>/C<unpack> with C<"U0"> format may not work properly.
422 =head1 Acknowledgements
424 XXX Generate this with:
426 perl Porting/acknowledgements.pl v5.21.9..HEAD
428 =head1 Reporting Bugs
430 If you find what you think is a bug, you might check the articles recently
431 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
432 https://rt.perl.org/ . There may also be information at
433 http://www.perl.org/ , the Perl Home Page.
435 If you believe you have an unreported bug, please run the L<perlbug> program
436 included with your release. Be sure to trim your bug down to a tiny but
437 sufficient test case. Your bug report, along with the output of C<perl -V>,
438 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
440 If the bug you are reporting has security implications, which make it
441 inappropriate to send to a publicly archived mailing list, then please send it
442 to perl5-security-report@perl.org. This points to a closed subscription
443 unarchived mailing list, which includes all the core committers, who will be
444 able to help assess the impact of issues, figure out a resolution, and help
445 co-ordinate the release of patches to mitigate or fix the problem across all
446 platforms on which Perl is supported. Please only use this address for
447 security issues in the Perl core, not for modules independently distributed on
452 The F<Changes> file for an explanation of how to view exhaustive details on
455 The F<INSTALL> file for how to build Perl.
457 The F<README> file for general stuff.
459 The F<Artistic> and F<Copying> files for copyright information.