manpagez: man pages & more
man perl5219delta(1)
Home | html | info | man
PERL5219DELTA(1pm)     Perl Programmers Reference Guide     PERL5219DELTA(1pm)


       perl5219delta - what is new for perl v5.21.9


       This document describes differences between the 5.21.8 release and the
       5.21.9 release.

       If you are upgrading from an earlier release such as 5.21.7, first read
       perl5218delta, which describes differences between 5.21.7 and 5.21.8.


       With this release we are now in the user-visible changes portion of the
       code freeze as we prepare for the next stable release of Perl 5.

Core Enhancements

   qr/\b{gcb}/ is now handled in regular expressions
       "gcb" stands for Grapheme Cluster Boundary.  It is a Unicode property
       that finds the boundary between sequences of characters that look like
       a single character to a native speaker of a language.  Perl has long
       had the ability to deal with these through the "\X" regular escape
       sequence.  Now, there is an alternative way of handling these.  See
       "\b{}, \b, \B{}, \B" in perlrebackslash for details.

   qr/\b{wb}/ is now handled in regular expressions
       "wb" stands for Word Boundary.  It is a Unicode property that finds the
       boundary between words.  This is similar to the plain "\b" (without
       braces) but is more suitable for natural language processing.  It
       knows, for example that apostrophes can occur in the middle of words.
       See "\b{}, \b, \B{}, \B" in perlrebackslash for details.

   qr/\b{sb}/ is now handled in regular expressions
       "sb" stands for Sentence Boundary.  It is a Unicode property to aid in
       parsing natural language sentences.  See "\b{}, \b, \B{}, \B" in
       perlrebackslash for details.

   New bitwise operators
       A new experimental facility has been added that makes the four standard
       bitwise operators ("& | ^ ~") treat their operands consistently as
       numbers, and introduces four new dotted operators ("&. |. ^. ~.") that
       treat their operands consistently as strings.  The same applies to the
       assignment variants ("&= |= ^= &.= |.= ^.=").

       To use this, enable the "bitwise" feature and disable the
       "experimental::bitwise" warnings category.  See "Bitwise String
       Operators" in perlop for details.  [ #123466]

   "no re" covers more and is lexical
       Previously running "no re" would only turn off a few things. Now it
       turns off all the enabled things. For example, previously, you couldn't
       turn off debugging, once enabled, inside the same block.

Incompatible Changes

       There are no changes intentionally incompatible with 5.21.8.  If any
       exist, they are bugs, and we request that you submit a report.  See
       "Reporting Bugs" below.

Modules and Pragmata

   Updated Modules and Pragmata
       o   attributes has been upgraded from version 0.25 to 0.26.

       o   B has been upgraded from version 1.55 to 1.56.

       o   B::Debug has been upgraded from version 1.22 to 1.23.

       o   B::Deparse has been upgraded from version 1.32 to 1.33.

           o   Deparse now provides a defined state sub in inner subs.

           o   Since version Perl 5.21.6, Deparse would croak on special
               constants, but this has now been fixed.

       o   Benchmark has been upgraded from version 1.19 to 1.20.

       o   bigint, bignum, bigrat have been upgraded to version 0.39.

           Document in CAVEATS that using strings as numbers won't always
           invoke the big number overloading, and how to invoke it.
           [ #123064]

       o   bignum has been upgraded from version 0.38 to 0.39.

       o   Carp has been upgraded from version 1.34 to 1.35.

           o   Carp now handles non-ASCII platforms better.

           o   Off-by-one error fix for Perl < 5.14.

       o   Config::Perl::V has been upgraded from version 0.22 to 0.23.

       o   constant has been upgraded from version 1.32 to 1.33.

       o   CPAN::Meta::Requirements has been upgraded from version 2.131 to

       o   Data::Dumper has been upgraded from version 2.156 to 2.157.

       o   Devel::Peek has been upgraded from version 1.21 to 1.22.

       o   DynaLoader has been upgraded from version 1.30 to 1.31.

       o   Encode has been upgraded from version 2.67 to 2.70.

           Building in C++ mode on Windows now works.

       o   encoding has been upgraded from version 2.12 to 2.13.

       o   Errno has been upgraded from version 1.22 to 1.23.

           Add "-P" to the preprocessor command-line on GCC 5.  GCC added
           extra line directives, breaking parsing of error code definitions.
           [ #123784]

       o   ExtUtils::Miniperl has been upgraded from version 1.03 to 1.04.

       o   feature has been upgraded from version 1.39 to 1.40.

       o   HTTP::Tiny has been upgraded from version 0.053 to 0.054.

       o   Opcode has been upgraded from version 1.31 to 1.32.

       o   overload has been upgraded from version 1.24 to 1.25.

       o   Perl::OSType has been upgraded from version 1.007 to 1.008.

       o   perlfaq has been upgraded from version 5.0150046 to 5.021009.

       o   PerlIO::scalar has been upgraded from version 0.21 to 0.22.

           Attempting to write at file positions impossible for the platform
           now fail early rather than wrapping at 4GB.

       o   Pod::Parser has been upgraded from version 1.62 to 1.63.

       o   Pod::Perldoc has been upgraded from version 3.24 to 3.25.

       o   POSIX has been upgraded from version 1.49 to 1.51.

       o   re has been upgraded from version 0.30 to 0.31.

       o   Socket has been upgraded from version 2.016 to 2.018.

       o   Storable has been upgraded from version 2.52 to 2.53.

       o   Test::Simple has been upgraded from version 1.301001_097 to

       o   threads::shared has been upgraded from version 1.47 to 1.48.

       o   Unicode::Collate has been upgraded from version 1.10 to 1.11.

       o   Unicode::UCD has been upgraded from version 0.59 to 0.61.

           o   A new function property_values() has been added to return a
               given property's possible values.

           o   A new function charprop() has been added to return the value of
               a given property for a given code point.

           o   A new function charprops_all() has been added to return the
               values of all Unicode properties for a given code point.

           o   A bug has been fixed so that propaliases() returns the correct
               short and long names for the Perl extensions where it was

           o   A bug has been fixed so that prop_value_aliases() returns
               "undef" instead of a wrong result for properties that are Perl

           o   This module now works on EBCDIC platforms.

       o   VMS::Stdio has been upgraded from version 2.4 to 2.41.

       o   warnings has been upgraded from version 1.30 to 1.31.

       o   Win32 has been upgraded from version 0.49 to 0.51.

           GetOSName() now supports Windows 8.1, and building in C++ mode now

       o   Win32API::File has been upgraded from version 0.1201 to 0.1202

           Building in C++ mode now works.


   New Documentation

       o   Added documentation of "\b{sb}", "\b{wb}", "\b{gcb}", and "\b{g}".


       o   Added example for "\b{wb}".


       o   Added example for "\b{wb}".

   Changes to Existing Documentation

       o   Update Default Word Boundaries under "Unicode Regular Expression
           Support Level" in perlunicode's Extended Unicode Support.


       o   Clarify that autodie >= 2.26 works with "use open".

       o   Correct warning message for "use autodie" and "use open".


       o   perlfaq has been synchronized with version 5.021009 from CPAN.


       o   Correct the version number which removes "m?PATTERN?". It was Perl


       o   Further clarify version number representations and usage.


       o   Instead of pointing to the module list, we are now pointing to
           PrePAN <>.


       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 Warnings

       o   '%s' is an unknown bound type in regex

           You used "\b{...}" or "\B{...}" and the "..." is not known to Perl.
           The current valid ones are given in "\b{}, \b, \B{}, \B" in

       o   Use of \b{} for non-UTF-8 locale is wrong.  Assuming a UTF-8 locale

           You are matching a regular expression using locale rules, and a
           Unicode boundary is being matched, but the locale is not a Unicode
           one.  This doesn't make sense.  Perl will continue, assuming a
           Unicode (UTF-8) locale, but the results could well be wrong except
           if the locale happens to be ISO-8859-1 (Latin1) where this message
           is spurious and can be ignored.

       o   Using /u for '%s' instead of /%s in regex; marked by <-- HERE in

           You used a Unicode boundary ("\b{...}" or "\B{...}") in a portion
           of a regular expression where the character set modifiers "/a" or
           "/aa" are in effect.  These two modifiers indicate an ASCII
           interpretation, and this doesn't make sense for a Unicode
           definition.  The generated regular expression will compile so that
           the boundary uses all of Unicode.  No other portion of the regular
           expression is affected.

       o   The bitwise feature is experimental

           This warning is emitted if you use bitwise operators ("& | ^ ~ &.
           |. ^. ~.") with the "bitwise" feature enabled.  Simply suppress the
           warning if you want to use the feature, but know that in doing so
           you are taking the risk of using an experimental feature which may
           change or be removed in a future Perl version:

               no warnings "experimental::bitwise";
               use feature "bitwise";
               $x |.= $y;

   Changes to Existing Diagnostics
       o   Unusual use of %s in void context has been removed. It might come
           back in a future release.

       o   Argument "%s" isn't numeric%s now adds the following note:

               Note that for the C<Inf> and C<NaN> (infinity and not-a-number) the
               definition of "numeric" is somewhat unusual: the strings themselves
               (like "Inf") are considered numeric, and anything following them is
               considered non-numeric.

       o   Possible precedence problem on bitwise %c operator reworded as
           Possible precedence problem on bitwise %s operator.

Utility Changes

       o   h2ph now handles hexadecimal constants in the compiler's predefined
           macro definitions, as visible in $Config{cppsymbols}.  [

       o   No longer depends on non-core module anymore.

Configuration and Compilation

       o   Configure now checks for lrintl, lroundl, llrintl, and llroundl.


       o   Added t/op/dump.t for testing "dump".


   Support for new warnings categories outside of "all"
       The new option for warnings outside the all category in the warnings
       pragma has been removed for now.

       For more context, you can refer to the following discussion thread

Platform Support

   Platform-Specific Notes

       o   Perl can now be built in C++ mode on Windows by setting the
           makefile macro "USE_CPLUSPLUS" to the value "define".

       o   List form pipe open no longer falls back to the shell.

       o   In release 5.21.8 compiling on VC with dmake was broken. Fixed.

       o   New "DebugSymbols" and "DebugFull" configuration options added to
           Windows makefiles.

       o   B now compiles again on Windows.


       Look for the Sun Studio compiler in both /opt/solstudio* and


       o   When spawning a subprocess without waiting, the return value is now
           the correct PID.

       o   Fix a prototype so linking doesn't fail under the VMS C++ compiler.

Selected Bug Fixes

       o   Patterns starting with "/.*/" are now fast again. [

       o   The original visible value of $/ is now preserved when it is set to
           an invalid value.  Previously if you set $/ to a reference to an
           array, for example, perl would produce a runtime error and not set
           "PL_rs", but perl code that checked $/ would see the array
           reference.  [ #123218]

       o   In a regular expression pattern, a POSIX class, like "[:ascii:]",
           must be inside a bracketed character class, like "/qr[[:ascii:]]".
           A warning is issued when something looking like a POSIX class is
           not inside a bracketed class.  That warning wasn't getting
           generated when the POSIX class was negated: "[:^ascii:]".  This is
           now fixed.

       o   Fix a couple of other size calculation overflows.  [

       o   A bug introduced in 5.21.6, "dump LABEL" acted the same as "goto
           LABEL".  This has been fixed.  [ #123836]

       o   Perl 5.14.0 introduced a bug whereby "eval { LABEL: }" would crash.
           This has been fixed.  [ #123652]

       o   Various crashes due to the parser getting confused by syntax errors
           have been fixed.  [ #123617] [ #123737]
           [ #123753] [ #123677]

       o   Code like "/$a[/" used to read the next line of input and treat it
           as though it came immediately after the opening bracket.  Some
           invalid code consequently would parse and run, but some code caused
           crashes, so this is now disallowed.  [ #123712]

       o   Fix argument underflow for "pack".  [ #123874]

       o   Fix handling of non-strict "\x{}". Now "\x{}" is equivalent to
           "\x{0}" instead of faulting.

       o   "stat -t" is now no longer treated as stackable, just like "-t
           stat".  [ #123816]

       o   The following no longer causes a SEGV: "qr{x+(y(?0))*}".

       o   Fixed infinite loop in parsing backrefs in regexp patterns.

       o   Several minor bug fixes in behavior of Inf and NaN, including
           warnings when stringifying Inf-like or NaN-like strings. For
           example, "NaNcy" doesn't numify to NaN anymore.

       o   Only stringy classnames are now shared. This fixes some failures in
           autobox.  [ #100819]


       Perl 5.21.9 represents approximately 4 weeks of development since Perl
       5.21.8 and contains approximately 170,000 lines of changes across 520
       files from 32 authors.

       Excluding auto-generated files, documentation and release tools, there
       were approximately 160,000 lines of changes to 270 .pm, .t, .c and .h

       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.21.9:

       Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
       Mannsaaker, Daniel Dragan, David Golden, David Mitchell, Father
       Chrysostomos, H.Merijn Brand, Hugo van der Sanden, James E Keenan,
       James Raspass, Jarkko Hietaniemi, Karen Etheridge, Karl Williamson,
       Kent Fredric, Lajos Veres, Leon Timmermans, Lukas Mai, Mathieu Arnold,
       Matthew Horsfall, Peter Martini, Petr PisaX, Randy Stauner, Ricardo
       Signes, Sawyer X, Shlomi Fish, Sisyphus, Steve Hay, Tony Cook, Yves
       Orton, AEvar Arnfjoer` 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

       If you find what you think is a bug, you might check the articles
       recently posted to the comp.lang.perl.misc newsgroup and the perl bug
       database at .  There may also be information at , 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 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 please
       send it to  This points to a closed
       subscription unarchived mailing list, which includes all the core
       committers, who will be able to 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.  Please only use this address for security issues in the
       Perl core, not for modules independently distributed on CPAN.


       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.

perl v5.22.0                      2015-05-13                PERL5219DELTA(1pm)

perl 5.22 - Generated Fri Aug 14 15:35:18 CDT 2015
© 2000-2021
Individual documents may contain additional copyright information.