dwww Home | Manual pages | Find package

PERL5202DELTA(1)        Perl Programmers Reference Guide       PERL5202DELTA(1)

NAME
       perl5202delta - what is new for perl v5.20.2

DESCRIPTION
       This document describes differences between the 5.20.1 release and the
       5.20.2 release.

       If you are upgrading from an earlier release such as 5.20.0, first read
       perl5201delta, which describes differences between 5.20.0 and 5.20.1.

Incompatible Changes
       There are no changes intentionally incompatible with 5.20.1.  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
       •   attributes has been upgraded from version 0.22 to 0.23.

           The  usage  of  "memEQs"  in the XS has been corrected.  [GH #14072]
           <https://github.com/Perl/perl5/issues/14072>

       •   Data::Dumper has been upgraded from version 2.151 to 2.151_01.

           Fixes CVE-2014-4330 by adding  a  configuration  variable/option  to
           limit recursion when dumping deep data structures.

       •   Errno has been upgraded from version 1.20_03 to 1.20_05.

           Warnings  when  building  the  XS  on  Windows  with  the Visual C++
           compiler are now avoided.

       •   feature has been upgraded from version 1.36 to 1.36_01.

           The "postderef" feature has now been documented.  This  feature  was
           actually  added in Perl 5.20.0 but was accidentally omitted from the
           feature documentation until now.

       •   IO::Socket has been upgraded from version 1.37 to 1.38.

           Document the limitations of the  connected()  method.   [GH  #14199]
           <https://github.com/Perl/perl5/issues/14199>

       •   Module::CoreList   has   been  upgraded  from  version  5.020001  to
           5.20150214.

           The list of Perl versions covered has been updated.

       •   PathTools has been upgraded from version 3.48 to 3.48_01.

           A warning from the gcc compiler is now avoided when building the XS.

       •   PerlIO::scalar has been upgraded from version 0.18 to 0.18_01.

           Reading from a  position  well  past  the  end  of  the  scalar  now
           correctly      returns     end     of     file.      [GH     #14342]
           <https://github.com/Perl/perl5/issues/14342>

           Seeking to a negative position still fails, but no longer leaves the
           file position set to a negation location.

           eof() on a "PerlIO::scalar" handle now properly  returns  true  when
           the file position is past the 2GB mark on 32-bit systems.

       •   Storable has been upgraded from version 2.49 to 2.49_01.

           Minor grammatical change to the documentation only.

       •   VMS::DCLsym has been upgraded from version 1.05 to 1.05_01.

           Minor formatting change to the documentation only.

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

           Minor formatting change to the documentation only.

Documentation
   New Documentation
       perlunicook

       This  document,  by  Tom  Christiansen,  provides  examples  of handling
       Unicode in Perl.

   Changes to Existing Documentation
       perlexperiment

       •   Added reference to subroutine signatures.  This feature was actually
           added  in  Perl  5.20.0  but  was  accidentally  omitted  from   the
           experimental feature documentation until now.

       perlpolicy

       •   The  process  whereby features may graduate from experimental status
           has now been formally documented.

       perlsyn

       •   An ambiguity in the documentation of the ellipsis statement has been
           corrected.  [GH #14054] <https://github.com/Perl/perl5/issues/14054>

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.

   Changes to Existing Diagnostics
       •   Bad symbol for scalar is now documented.  This error is not new, but
           was not previously documented here.

       •   Missing right brace on \N{} is now documented.  This  error  is  not
           new, but was not previously documented here.

Testing
       •   The  test  script  re/rt122747.t  has  been added to verify that [GH
           #14081] <https://github.com/Perl/perl5/issues/14081> remains fixed.

Platform Support
   Regained Platforms
       IRIX and Tru64 platforms are working again.  (Some "make test"  failures
       remain.)

Selected Bug Fixes
       •   AIX  now  sets  the  length  in "getsockopt" correctly.  [GH #13484]
           <https://github.com/Perl/perl5/issues/13484>,     [cpan      #91183]
           <https://rt.cpan.org/Ticket/Display.html?id=91183>,   [cpan  #85570]
           <https://rt.cpan.org/Ticket/Display.html?id=85570>

       •   In Perl 5.20.0, $^N accidentally had the internal UTF8  flag  turned
           off  if  accessed  from  a  code  block within a regular expression,
           effectively UTF8-encoding the value.   This  has  been  fixed.   [GH
           #14211] <https://github.com/Perl/perl5/issues/14211>

       •   Various   cases   where  the  name  of  a  sub  is  used  (autoload,
           overloading, error messages) used to crash  for  lexical  subs,  but
           have been fixed.

       •   An  assertion failure when parsing "sort" with debugging enabled has
           been               fixed.                 [GH                #14087]
           <https://github.com/Perl/perl5/issues/14087>

       •   Loading  UTF8  tables  during a regular expression match could cause
           assertion failures under debugging builds if the previous match used
           the    very    same     regular     expression.      [GH     #14081]
           <https://github.com/Perl/perl5/issues/14081>

       •   Due to a mistake in the string-copying logic, copying the value of a
           state  variable  could  instead  steal  the  value  and undefine the
           variable.  This bug, introduced in Perl 5.20,  would  happen  mostly
           for  long  strings  (1250  chars  or more), but could happen for any
           strings under  builds  with  copy-on-write  disabled.   [GH  #14175]
           <https://github.com/Perl/perl5/issues/14175>

       •   Fixed a bug that could cause perl to execute an infinite loop during
           compilation.                        [GH                      #14165]
           <https://github.com/Perl/perl5/issues/14165>

       •   On Win32, restoring in a child pseudo-process a  variable  that  was
           local()ed  in  a  parent  pseudo-process  before the "fork" happened
           caused memory corruption and a crash  in  the  child  pseudo-process
           (and       therefore       OS       process).        [GH      #8641]
           <https://github.com/Perl/perl5/issues/8641>

       •   Tainted  constants  evaluated  at  compile  time  no  longer   cause
           unrelated    statements    to    become    tainted.    [GH   #14059]
           <https://github.com/Perl/perl5/issues/14059>

       •   Calling "write" on a format with a "^**" field could produce a panic
           in sv_chop() if there were insufficient arguments or if the variable
           used   to   fill    the    field    was    empty.     [GH    #14255]
           <https://github.com/Perl/perl5/issues/14255>

       •   In  Perl  5.20.0,  "sort  CORE::fake" where 'fake' is anything other
           than a keyword  started  chopping  of  the  last  6  characters  and
           treating  the  result as a sort sub name.  The previous behaviour of
           treating "CORE::fake" as a sort sub name  has  been  restored.   [GH
           #14323] <https://github.com/Perl/perl5/issues/14323>

       •   A  bug  in  regular expression patterns that could lead to segfaults
           and other crashes has been fixed.  This occurred  only  in  patterns
           compiled  with  "/i",  while  taking  into account the current POSIX
           locale (this usually means they have to be compiled within the scope
           of "use locale"), and there  must  be  a  string  of  at  least  128
           consecutive       bytes       to       match.       [GH      #14389]
           <https://github.com/Perl/perl5/issues/14389>

       •   "qr/@array(?{block})/" no longer dies with "Bizarre copy of  ARRAY".
           [GH #14292] <https://github.com/Perl/perl5/issues/14292>

       •   "gmtime"  no  longer  crashes with not-a-number values.  [GH #14365]
           <https://github.com/Perl/perl5/issues/14365>

       •   Certain syntax errors in substitutions, such as "s/${<>{})//", would
           crash, and had done so since Perl 5.10.  (In some  cases  the  crash
           did not start happening until Perl 5.16.)  The crash has, of course,
           been                fixed.                 [GH               #14391]
           <https://github.com/Perl/perl5/issues/14391>

       •   A memory leak  in  some  regular  expressions,  introduced  in  Perl
           5.20.1,        has        been       fixed.        [GH       #14236]
           <https://github.com/Perl/perl5/issues/14236>

       •   "formline("@...", "a");" would  crash.   The  "FF_CHECKNL"  case  in
           pp_formline() didn't set the pointer used to mark the chop position,
           which  led to the "FF_MORE" case crashing with a segmentation fault.
           This        has        been        fixed.         [GH        #14388]
           <https://github.com/Perl/perl5/issues/14388>       [GH       #14425]
           <https://github.com/Perl/perl5/issues/14425>

       •   A possible buffer overrun and crash when parsing a  literal  pattern
           during  regular  expression compilation has been fixed.  [GH #14416]
           <https://github.com/Perl/perl5/issues/14416>

Known Problems
       •   It is a known bug that lexical subroutines cannot  be  used  as  the
           "SUBNAME"  argument  to  "sort".   This  will  be  fixed in a future
           version of Perl.

Errata From Previous Releases
       •   A regression has been fixed  that  was  introduced  in  Perl  5.20.0
           (fixed  in  Perl  5.20.1  as  well as here) in which a UTF-8 encoded
           regular expression pattern that contains a  single  ASCII  lowercase
           letter  does  not  match  its  uppercase  counterpart.   [GH #14051]
           <https://github.com/Perl/perl5/issues/14051>

Acknowledgements
       Perl 5.20.2 represents approximately 5 months of development since  Perl
       5.20.1  and  contains  approximately  6,300  lines of changes across 170
       files from 34 authors.

       Excluding auto-generated files, documentation and release  tools,  there
       were  approximately  1,900  lines  of  changes  to 80 .pm, .t, .c and .h
       files.

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

       Aaron Crane, Abigail, Andreas Voegele, Andy Dougherty, Anthony  Heading,
       Aristotle  Pagaltzis,  Chris  'BinGOs'  Williams, Craig A. Berry, Daniel
       Dragan, Doug Bell, Ed J, Father Chrysostomos, Glenn D. Golden,  H.Merijn
       Brand,  Hugo  van  der  Sanden,  James  E Keenan, Jarkko Hietaniemi, Jim
       Cromie, Karen Etheridge, Karl Williamson,  kmx,  Matthew  Horsfall,  Max
       Maischein,  Peter  Martini, Rafael Garcia-Suarez, Ricardo Signes, Shlomi
       Fish, Slaven Rezic, Steffen Müller, Steve Hay,  Tadeusz  Sośnierz,  Tony
       Cook, Yves Orton, Ævar Arnfjörð 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  https://rt.perl.org/  .   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  please
       send  it  to  perl5-security-report@perl.org.   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.

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.

perl v5.40.1                       2026-08-30                  PERL5202DELTA(1)

Generated by dwww version 1.16 on Sat Oct 3 06:50:44 CEST 2026.