dwww Home | Manual pages | Find package

PERL5122DELTA(1)        Perl Programmers Reference Guide       PERL5122DELTA(1)

NAME
       perl5122delta - what is new for perl v5.12.2

DESCRIPTION
       This document describes differences between the 5.12.1 release and the
       5.12.2 release.

       If you are upgrading from an earlier major version, such as 5.10.1,
       first read perl5120delta, which describes differences between 5.10.0 and
       5.12.0, as well as perl5121delta, which describes earlier changes in the
       5.12 stable release series.

Incompatible Changes
       There are no changes intentionally incompatible with 5.12.1. If any
       exist, they are bugs and reports are welcome.

Core Enhancements
       Other than the bug fixes listed below, there should be no user-visible
       changes to the core language in this release.

Modules and Pragmata
   New Modules and Pragmata
       This release does not introduce any new modules or pragmata.

   Pragmata Changes
       In the previous release, "no VERSION;" statements triggered a bug which
       could cause feature bundles to be loaded and strict mode to be enabled
       unintentionally.

   Updated Modules
       "Carp"
           Upgraded from version 1.16 to 1.17.

           Carp  now  detects  incomplete  caller()  overrides and avoids using
           bogus @DB::args. To provide backtraces, Carp  relies  on  particular
           behaviour of the caller built-in. Carp now detects if other code has
           overridden  this with an incomplete implementation, and modifies its
           backtrace accordingly. Previously incomplete overrides  would  cause
           incorrect  values in backtraces (best case), or obscure fatal errors
           (worst case)

           This fixes certain cases  of  "Bizarre  copy  of  ARRAY"  caused  by
           modules overriding caller() incorrectly.

       "CPANPLUS"
           A  patch to cpanp-run-perl has been backported from CPANPLUS 0.9004.
           This                resolves                RT                #55964
           <http://rt.cpan.org/Public/Bug/Display.html?id=55964>  and RT #57106
           <http://rt.cpan.org/Public/Bug/Display.html?id=57106>, both of which
           related   to   failures   to   install   distributions   that    use
           "Module::Install::DSL".

       "File::Glob"
           A  regression  which  caused  a failure to find "CORE::GLOBAL::glob"
           after loading  "File::Glob"  to  crash  has  been  fixed.   Now,  it
           correctly falls back to external globbing via "pp_glob".

       "File::Copy"
           "File::Copy::copy(FILE, DIR)" is now documented.

       "File::Spec"
           Upgraded from version 3.31 to 3.31_01.

           Several portability fixes were made in "File::Spec::VMS": a colon is
           now  recognized  as  a  delimiter in native filespecs; caret-escaped
           delimiters are recognized for better handling of extended filespecs;
           catpath()  returns  an  empty  directory  rather  than  the  current
           directory  if  the input directory name is empty; abs2rel() properly
           handles Unix-style input.

Utility Changes
       •   perlbug now always gives the reporter a chance to change  the  email
           address it guesses for them.

       •   perlbug  should no longer warn about uninitialized values when using
           the "-d" and "-v" options.

Changes to Existing Documentation
       •   The existing policy on backward-compatibility  and  deprecation  has
           been  added  to  perlpolicy,  along  with  definitions of terms like
           deprecation.

       •   "srand" in perlfunc's usage has been clarified.

       •   The entry for "die" in perlfunc was  reorganized  to  emphasize  its
           role in the exception mechanism.

       •   Perl's INSTALL file has been clarified to explicitly state that Perl
           requires a C89 compliant ANSI C Compiler.

       •   IO::Socket's getsockopt() and setsockopt() have been documented.

       •   alarm()'s  inability  to  interrupt  blocking IO on Windows has been
           documented.

       •   Math::TrulyRandom hasn't  been  updated  since  1996  and  has  been
           removed as a recommended solution for random number generation.

       •   perlrun  has been updated to clarify the behaviour of octal flags to
           perl.

       •   To ease user confusion, $# and $*, two special variables  that  were
           removed in earlier versions of Perl have been documented.

       •   The  version  of perlfaq shipped with the Perl core has been updated
           from the official FAQ  version,  which  is  now  maintained  in  the
           "briandfoy/perlfaq"    branch    of    the    Perl   repository   at
           <git://perl5.git.perl.org/perl.git>.

Installation and Configuration Improvements
   Configuration improvements
       •   The "d_u32align" configuration probe on ARM has been fixed.

   Compilation improvements
       •   An ""incompatible operand types"" error in ternary expressions  when
           building with "clang" has been fixed.

       •   Perl now skips setuid "File::Copy" tests on partitions it detects to
           be mounted as "nosuid".

Selected Bug Fixes
       •   A  possible  segfault  in  the  "T_PRTOBJ"  default typemap has been
           fixed.

       •   A possible memory leak when using caller() to set @DB::args has been
           fixed.

       •   Several memory leaks when loading XS modules were fixed.

       •   unpack() now handles scalar context correctly  for  %32H  and  %32u,
           fixing  a  potential  crash.   split() would crash because the third
           item on  the  stack  wasn't  the  regular  expression  it  expected.
           "unpack("%2H",  ...)"  would return both the unpacked result and the
           checksum on the stack, as would "unpack("%2u", ...)".   [GH  #10257]
           <https://github.com/Perl/perl5/issues/10257>

       •   Perl now avoids using memory after calling free() in pp_require when
           there are CODEREFs in @INC.

       •   A   bug   that   could   cause   ""Unknown   error""  messages  when
           ""call_sv(code, G_EVAL)"" is called from an XS destructor  has  been
           fixed.

       •   The  implementation  of  the  "open  $fh,  '>' \$buffer" feature now
           supports get/set magic and thus tied buffers correctly.

       •   The "pp_getc", "pp_tell", and "pp_eof" opcodes now make room on  the
           stack  for their return values in cases where no argument was passed
           in.

       •   When matching unicode strings under  some  conditions  inappropriate
           backtracking  would  result in a "Malformed UTF-8 character (fatal)"
           error.  This   should   no   longer   occur.    See    [GH   #10434]
           <https://github.com/Perl/perl5/issues/10434>

Platform Specific Notes
   AIX
       •   README.aix  has been updated with information about the XL C/C++ V11
           compiler suite.

   Windows
       •   When building Perl with the mingw64  x64  cross-compiler  "incpath",
           "libpth",  "ldflags",  "lddlflags" and "ldflags_nolargefiles" values
           in Config.pm and  Config_heavy.pl  were  not  previously  being  set
           correctly   because,   with  that  compiler,  the  include  and  lib
           directories are not immediately below "$(CCHOME)".

   VMS
       •   git_version.h is now installed on VMS.  This  was  an  oversight  in
           v5.12.0 which caused some extensions to fail to build.

       •   Several memory leaks in stat() have been fixed.

       •   A  memory  leak in Perl_rename() due to a double allocation has been
           fixed.

       •   A  memory  leak  in  vms_fid_to_name()  (used  by   realpath()   and
           realname()) has been fixed.

Acknowledgements
       Perl  5.12.2  represents approximately three months of development since
       Perl 5.12.1 and contains approximately 2,000 lines of changes across 100
       files from 36 authors.

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

       Abigail, Ævar  Arnfjörð  Bjarmason,  Ben  Morrow,  brian  d  foy,  Brian
       Phillips, Chas. Owens, Chris 'BinGOs' Williams, Chris Williams, Craig A.
       Berry,  Curtis  Jewell,  Dan  Dascalescu,  David Golden, David Mitchell,
       Father Chrysostomos, Florian Ragwitz, George Greer, H.Merijn Brand,  Jan
       Dubois,  Jesse  Vincent,  Jim Cromie, Karl Williamson, Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯,
       Leon Brocard, Maik  Hentsche,  Matt  S  Trout,  Nicholas  Clark,  Rafael
       Garcia-Suarez,  Rainer  Tammer,  Ricardo  Signes, Salvador Ortiz Garcia,
       Sisyphus, Slaven Rezic, Steffen Mueller, Tony Cook, Vincent Pit and Yves
       Orton.

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 http://rt.perl.org/perlbug/ .  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                  PERL5122DELTA(1)

Generated by dwww version 1.16 on Sat Oct 3 06:03:16 CEST 2026.