dwww Home | Manual pages | Find package

PERL5201DELTA(1)        Perl Programmers Reference Guide       PERL5201DELTA(1)

NAME
       perl5201delta - what is new for perl v5.20.1

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

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

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

Performance Enhancements
       •   An   optimization  to  avoid  problems  with  COW  and  deliberately
           overallocated PVs has  been  disabled  because  it  interfered  with
           another,  more  important,  optimization, causing a slowdown on some
           platforms.  [GH #13878] <https://github.com/Perl/perl5/issues/13878>

       •   Returning a string from a lexical variable could  be  slow  in  some
           cases.      This     has    now    been    fixed.     [GH    #13880]
           <https://github.com/Perl/perl5/issues/13880>

Modules and Pragmata
   Updated Modules and Pragmata
       •   Config::Perl::V has been upgraded from version 0.20 to 0.22.

           The list of Perl versions covered has been updated and some flaws in
           the parsing have been fixed.

       •   Exporter has been upgraded from version 5.70 to 5.71.

           Illegal POD syntax in the documentation has been corrected.

       •   ExtUtils::CBuilder  has  been  upgraded  from  version  0.280216  to
           0.280217.

           Android     builds     now     link     to     both    -lperl    and
           $Config::Config{perllibs}.

       •   File::Copy has been upgraded from version 2.29 to 2.30.

           The documentation now notes that "copy" will not overwrite read-only
           files.

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

           The list of Perl versions covered has been updated.

       •   The PathTools module collection has been upgraded from version  3.47
           to 3.48.

           Fallbacks  are  now  in  place  when cross-compiling for Android and
           $Config::Config{sh}   is   not    yet    defined.     [GH    #13872]
           <https://github.com/Perl/perl5/issues/13872>

       •   PerlIO::via has been upgraded from version 0.14 to 0.15.

           A   minor   portability   improvement   has  been  made  to  the  XS
           implementation.

       •   Unicode::UCD has been upgraded from version 0.57 to 0.58.

           The documentation includes many clarifications and fixes.

       •   utf8 has been upgraded from version 1.13 to 1.13_01.

           The documentation has some minor formatting improvements.

       •   version has been upgraded from version 0.9908 to 0.9909.

           External libraries and Perl may have different  ideas  of  what  the
           locale  is.  This is problematic when parsing version strings if the
           locale's numeric separator has been changed.   Version  parsing  has
           been  patched  to  ensure  it  handles  the  locales correctly.  [GH
           #13863] <https://github.com/Perl/perl5/issues/13863>

Documentation
   Changes to Existing Documentation
       perlapi

       •   "av_len" - Emphasize that this returns  the  highest  index  in  the
           array,    not    the    size    of    the    array.    [GH   #13377]
           <https://github.com/Perl/perl5/issues/13377>

       •   Note that "SvSetSV" doesn't do set magic.

       •   "sv_usepvn_flags" - Fix documentation to mention the use  of  "NewX"
           instead          of          "malloc".           [GH         #13835]
           <https://github.com/Perl/perl5/issues/13835>

       •   Clarify where "NUL" may be embedded or is required  to  terminate  a
           string.

       perlfunc

       •   Clarify the meaning of "-B" and "-T".

       •   "-l"  now  notes  that  it  will  return  false  if  symlinks aren't
           supported     by     the     file     system.       [GH      #13695]
           <https://github.com/Perl/perl5/issues/13695>

       •   Note   that  "each",  "keys"  and  "values"  may  produce  different
           orderings for tied  hashes  compared  to  other  perl  hashes.   [GH
           #13650] <https://github.com/Perl/perl5/issues/13650>

       •   Note  that  "exec LIST" and "system LIST" may fall back to the shell
           on Win32.  Only  "exec  PROGRAM  LIST"  and  "system  PROGRAM  LIST"
           indirect  object  syntax  will reliably avoid using the shell.  This
           has    also    been    noted    in    perlport.      [GH     #13907]
           <https://github.com/Perl/perl5/issues/13907>

       •   Clarify      the      meaning     of     "our".      [GH     #13938]
           <https://github.com/Perl/perl5/issues/13938>

       perlguts

       •   Explain various ways of modifying  an  existing  SV's  buffer.   [GH
           #12813] <https://github.com/Perl/perl5/issues/12813>

       perlpolicy

       •   We  now  have  a  code  of  conduct  for  the  p5p  mailing list, as
           documented in "STANDARDS OF CONDUCT" in perlpolicy.

       perlre

       •   The "/x" modifier has been clarified to note that comments cannot be
           continued onto the next line by escaping them.

       perlsyn

       •   Mention the use of empty conditionals  in  "for"/"while"  loops  for
           infinite loops.

       perlxs

       •   Added a discussion of locale issues in XS code.

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
       •   Variable length lookbehind not implemented in regex m/%s/

           Information about Unicode behaviour has been added.

Configuration and Compilation
       •   Building  Perl  no  longer writes to the source tree when configured
           with    Configure's    -Dmksymlinks     option.      [GH     #13712]
           <https://github.com/Perl/perl5/issues/13712>

Platform Support
   Platform-Specific Notes
       Android
           Build  support  has been improved for cross-compiling in general and
           for Android in particular.

       OpenBSD
           Corrected architectures and version numbers  used  in  configuration
           hints when building Perl.

       Solaris
           c99  options  have been cleaned up, hints look for solstudio as well
           as SUNWspro, and support for native "setenv" has been added.

       VMS An old bug in feature checking, mainly  affecting  pre-7.3  systems,
           has been fixed.

       Windows
           %I64d is now being used instead of %lld for MinGW.

Internal Changes
       •   Added  "sync_locale"  in  perlapi.   Changing  the  program's locale
           should be  avoided  by  XS  code.   Nevertheless,  certain  non-Perl
           libraries  called  from XS, such as "Gtk" do so.  When this happens,
           Perl needs to be  told  that  the  locale  has  changed.   Use  this
           function to do so, before returning to Perl.

Selected Bug Fixes
       •   A  bug  has  been fixed where zero-length assertions and code blocks
           inside of a regex could cause "pos" to see an incorrect value.   [GH
           #14016] <https://github.com/Perl/perl5/issues/14016>

       •   Using  "s///e"  on tainted utf8 strings could issue bogus "Malformed
           UTF-8 character (unexpected end of string)" warnings.  This has  now
           been                fixed.                 [GH               #13948]
           <https://github.com/Perl/perl5/issues/13948>

       •   "system" and friends  should  now  work  properly  on  more  Android
           builds.

           Due  to  an  oversight,  the  value  specified through -Dtargetsh to
           Configure would end up being ignored by some of the  build  process.
           This  caused  perls  cross-compiled  for  Android  to  end  up  with
           defective versions of "system", "exec" and backticks:  the  commands
           would  end  up looking for /bin/sh instead of /system/bin/sh, and so
           would fail for the vast majority of devices, leaving $! as "ENOENT".

       •   Many     issues     have     been     detected      by      Coverity
           <http://www.coverity.com/> and fixed.

Acknowledgements
       Perl  5.20.1 represents approximately 4 months of development since Perl
       5.20.0 and contains approximately 12,000 lines  of  changes  across  170
       files from 36 authors.

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

       Aaron  Crane,  Abigail,  Alberto  Simões,  Alexandr  Ciornii,  Alexandre
       (Midnite) Jousset, Andrew Fresh, Andy  Dougherty,  Brian  Fraser,  Chris
       'BinGOs'  Williams,  Craig  A. Berry, Daniel Dragan, David Golden, David
       Mitchell, H.Merijn Brand, James E Keenan, Jan Dubois, Jarkko Hietaniemi,
       John Peacock,  kafka,  Karen  Etheridge,  Karl  Williamson,  Lukas  Mai,
       Matthew  Horsfall,  Michael  Bunk,  Peter Martini, Rafael Garcia-Suarez,
       Reini Urban, Ricardo Signes,  Shirakata  Kentaro,  Smylers,  Steve  Hay,
       Thomas Sibley, Todd Rinaldo, Tony Cook, Vladimir Marek, 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                  PERL5201DELTA(1)

Generated by dwww version 1.16 on Fri Oct 2 04:03:39 CEST 2026.