dwww Home | Manual pages | Find package

PERL5203DELTA(1)        Perl Programmers Reference Guide       PERL5203DELTA(1)

NAME
       perl5203delta - what is new for perl v5.20.3

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

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

Incompatible Changes
       There are no changes intentionally incompatible with 5.20.2.  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
       •   Errno has been upgraded from version 1.20_05 to 1.20_06.

           Add  -P to the pre-processor command-line on GCC 5.  GCC added extra
           line directives, breaking parsing of error  code  definitions.   [GH
           #14491] <https://github.com/Perl/perl5/issues/14491>

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

           Updated to cover the latest releases of Perl.

       •   perl5db.pl has been upgraded from 1.44 to 1.44_01.

           The  debugger  would  cause  an  assertion  failure.   [GH   #14605]
           <https://github.com/Perl/perl5/issues/14605>

Documentation
   Changes to Existing Documentation
       perlfunc

       •   Mention that study() is currently a no-op.

       perlguts

       •   The  OOK  example  has been updated to account for COW changes and a
           change in the storage of the offset.

       perlhacktips

       •   Documentation has been added illustrating the perils of assuming the
           contents of static memory pointed to by the return  values  of  Perl
           wrappers for C library functions doesn't change.

       perlpodspec

       •   The  specification  of  the  POD  language  is  changing so that the
           default encoding of PODs that  aren't  in  UTF-8  (unless  otherwise
           indicated) is CP1252 instead of ISO-8859-1 (Latin1).

Utility Changes
   h2ph
       •   h2ph  now handles hexadecimal constants in the compiler's predefined
           macro definitions, as visible in $Config{cppsymbols}.   [GH  #14491]
           <https://github.com/Perl/perl5/issues/14491>

Testing
       •   t/perf/taint.t  has  been  added  to see if optimisations with taint
           issues are keeping things fast.

       •   t/porting/re_context.t has been added to  test  that  utf8  and  its
           dependencies  only  use the subset of the "$1..$n" capture vars that
           Perl_save_re_context()  is  hard-coded  to  localize,  because  that
           function has no efficient way of determining at runtime what vars to
           localize.

Platform Support
   Platform-Specific Notes
       Win32
           •   Previously,  when compiling with a 64-bit Visual C++, every Perl
               XS module (including CPAN ones) and  Perl  aware  C  file  would
               unconditionally  have  around  a  dozen warnings from hv_func.h.
               These warnings have been silenced.  GCC (all bitness) and 32-bit
               Visual C++ were not affected.

           •   miniperl.exe is now built  with  -fno-strict-aliasing,  allowing
               64-bit   builds   to   complete   with  GCC  4.8.   [GH  #14556]
               <https://github.com/Perl/perl5/issues/14556>

Selected Bug Fixes
       •   Repeated global pattern matches in scalar context on  large  tainted
           strings  were  exponentially  slow  depending  on  the current match
           position       in       the       string.         [GH        #14238]
           <https://github.com/Perl/perl5/issues/14238>

       •   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.
           [GH #14245] <https://github.com/Perl/perl5/issues/14245>

       •   Perl  5.14.0 introduced a bug whereby "eval { LABEL: }" would crash.
           This        has        been        fixed.         [GH        #14438]
           <https://github.com/Perl/perl5/issues/14438>

       •   Extending  an  array  cloned  from  a  parent thread could result in
           "Modification of a read-only value attempted" errors when attempting
           to     modify     the      new      elements.       [GH      #14605]
           <https://github.com/Perl/perl5/issues/14605>

       •   Several cases of data used to store environment variable contents in
           core  C  code  being  potentially overwritten before being used have
           been               fixed.                 [GH                #14476]
           <https://github.com/Perl/perl5/issues/14476>

       •   UTF-8  variable  names  used  in array indexes, unquoted UTF-8 HERE-
           document  terminators  and  UTF-8  function  names  all   now   work
           correctly.  [GH #14601] <https://github.com/Perl/perl5/issues/14601>

       •   A  subtle  bug  introduced in Perl 5.20.2 involving UTF-8 in regular
           expressions and sometimes causing a crash has  been  fixed.   A  new
           test  script  has  been added to test this fix; see under "Testing".
           [GH #14600] <https://github.com/Perl/perl5/issues/14600>

       •   Some patterns starting with "/.*..../" matched against long  strings
           have been slow since Perl 5.8, and some of the form "/.*..../i" have
           been  slow  since  Perl  5.18.   They  are  now all fast again.  [GH
           #14475] <https://github.com/Perl/perl5/issues/14475>

       •   Warning fatality is now ignored  when  rewinding  the  stack.   This
           prevents  infinite  recursion  when  the now fatal error also causes
           rewinding       of       the       stack.         [GH        #14319]
           <https://github.com/Perl/perl5/issues/14319>

       •   setpgrp($nonzero)  (with  one  argument) was accidentally changed in
           Perl 5.16 to mean setpgrp(0).  This has been fixed.

       •   A crash with "%::=(); J->${\"::"}"  has  been  fixed.   [GH  #14790]
           <https://github.com/Perl/perl5/issues/14790>

       •   Regular  expression  possessive  quantifier Perl 5.20 regression now
           fixed.  "qr/"PAT"{"min,max"}+""/" is supposed to behave  identically
           to "qr/(?>"PAT"{"min,max"})/".  Since Perl 5.20, this didn't work if
           min       and       max      were      equal.       [GH      #14857]
           <https://github.com/Perl/perl5/issues/14857>

       •   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.     [GH   #14462]
           <https://github.com/Perl/perl5/issues/14462>

Acknowledgements
       Perl 5.20.3 represents approximately 7 months of development since  Perl
       5.20.2 and contains approximately 3,200 lines of changes across 99 files
       from 26 authors.

       Excluding  auto-generated  files, documentation and release tools, there
       were approximately 1,500 lines of changes to  43  .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.3:

       Alex  Vandiver,  Andy  Dougherty,  Aristotle  Pagaltzis,  Chris 'BinGOs'
       Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel Dragan, David
       Mitchell, Father Chrysostomos, H.Merijn Brand,  James  E  Keenan,  James
       McCoy,  Jarkko  Hietaniemi, Karen Etheridge, Karl Williamson, kmx, Lajos
       Veres, Lukas Mai, Matthew Horsfall, Petr Písař, Randy  Stauner,  Ricardo
       Signes, Sawyer X, Steve Hay, Tony Cook, Yves Orton.

       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                  PERL5203DELTA(1)

Generated by dwww version 1.16 on Sat Oct 3 06:51:07 CEST 2026.