Revision history for Perl core module Data::Dumper

2.183 2021-07-05 NWCLARK
    - No changes from previous dev release.

2.182_51 2021-07-03 NWCLARK
    - For the optional array of names for the values, Dumpxs now handles names
      that are now plain strings (eg references with string overloading).
      The pure Perl implementation had always handled these correctly.

2.182_50 2021-07-01 NWCLARK
    - Output qr'$foo' correctly (using a suggestion from Eirik Berg Hanssen)

2.182 2021-06-30 NWCLARK
    - Reformatted Data-Dumper Changes as per CPAN::Changes::Spec (GH #18952)

2.181_50 2021-06-29 NWCLARK
    - Set bugtracker metadata to

2.181 2021-05-26 NWCLARK
    - No changes from previous dev release.

2.180_53 2021-05-25 NWCLARK
    - Fix Makefile.PL to install to "perl" for 5.10.x and earlier (CPAN #12282)

2.180_52 2021-05-24 NWCLARK
    - Remove no longer needed compatibility shims,
      and use ppport.h whenever possible.

2.180_51 2021-05-23 NWCLARK
    - Convert dumper.t to Test::More and
      eliminate a lot of test code duplication.

2.180_50 2021-05-22 NWCLARK
    - Data::Dumper now requires Perl v5.8.1 or later.

2.180 2021-05-17 NWCLARK
    - No changes from previous dev release.

2.179_50 2021-05-14 NWCLARK
    - Data::Dumper handles Unicode regex corner cases (GH #18614, GH #18764)

2.179 2021-05-13 NWCLARK
    - Revert the changes of 2.177 for the v5.34.0 release to avoid a regression.

2.178 2021-04-07 JKEENAN
    - Correct documentation of indent Style 2.

2.177 2021-03-03 ARC
    - Make Data::Dumper mark regex output as UTF-8 if needed. (GH #18614)

2.176 2020-09-30 TODDR
    - Make Data::Dumper strict and warnings compliant.

2.175 2020-08-13 TONYC
    - Avoid some leaks if we call get magic and that throws an exception.

2.174 2019-04-03 DAPM
    - Avoid leaking if we croak due to excessive recursion.

2.173 2018-11-10 XSAWYERX
    - perl #133624: Reinstate support for 5.8.8 and older.

2.172 2018-09-19 XSAWYERX
    - Prepare recent changes for CPAN release

2.171 2018-04-21 ARC
    - Restore deparsing support in the XS dumper, on Perl 5.18 and earlier
    - Test fixes on older Perl versions (notably, skip tests for Unicode glob
      names on Perl 5.14 and earlier, which had incomplete support for Unicode
      in globs)

2.170 2018-01-10 ZEFRAM
    - Fix bug when dumping globs with quoting (which now happens for
      all Unicode glob names)
    - Internal change: use strlcpy(), for safety

2.169 2017-12-12 ZEFRAM
    - Behavior change: $dumper->Useqq(undef) is now treated as setting the
      "useqq" option, not getting it (and similarly for other options)
      [perl #113090]

2.168 2017-12-01 ZEFRAM
    - perl #119831: Quote glob names better; notably, Unicode globs are
      now handled correctly

2.167_02 2017-08-04 SMUELLER
    - Attempt to work around XS deparse issues on old perls.
      According to the few old perls at my disposure, this now repairs,
      for example 5.18, but 5.8.9 still barfs. My debugging hasn't
      really come up with much since all changes other than the deparse
      change look benign to me.
      Can someone who uses ancient perls please step up and take a look?

2.167_01 2017-07-31 SMUELLER
    - CPAN dev release with the accumulated changes from core perl.

2.166 2016-11-29 BDRACO
    - Reduce memory usage by not importing from Carp
    - Reduce memory usage by removing unused overload require.

2.165 2016-11-20 KHW
    - Remove impediment to compiling under C++11.

2.164 2016-11-12 ARC
    - The XS implementation now handles the C<Deparse> option, so using it no
      longer forces use of the pure-Perl version.

2.161 2016-07-11 SMUELLER
    - Perl 5.12 fix/workaround until fixed PPPort release.
    - Pre-5.12 fixes for test dependency.

2.160 2016-07-03 SMUELLER
    - Now handles huge inputs on 64bit perls.
    - Add Trailingcomma option. This is as suggested in RT#126813.
    - Significant refactoring of XS implementation.
    - Pure Perl implementation fixes in corner cases ("\n" dumped raw").

2.154 2014-09-18 SMUELLER
    - Most notably, this release fixes CVE-2014-4330:
      Don't recurse infinitely in Data::Dumper
      Add a configuration variable/option to limit recursion when dumping
      deep data structures.
      This patch addresses CVE-2014-4330.  This bug was found and
      reported by: LSE Leading Security Experts GmbH employee Markus
    - On top of that, there are several minor big fixes and improvements,
      see "git log" if the core perl distribution for details.

2.151 2014-03-07 SMUELLER
    - A "useqq" implementation for the XS version of Data::Dumper.
    - Better compatibility wrt. hash key quoting between PP and XS
      versions of Data::Dumper.
    - EBCDIC fixes.
    - 64bit safety fixes (for very large arrays).
    - Build fixes for threaded perls.
    - clang warning fixes.
    - Warning fixes in tests on older perls.
    - Typo fixes in documentation.

2.145 2013-03-15 SMUELLER
    - Test refactoring and fixing wide and far.
    - Various old-perl compat fixes.

2.143 2013-02-26 SMUELLER
    - Address vstring related test failures on 5.8: Skip tests for
      obscure case.
    - Major improvements to test coverage and significant refactoring.
    - Make Data::Dumper XS ignore Freezer return value. Fixes RT #116364.
    - Change call of isALNUM to equivalent but more clearly named isWORDCHAR

2.139 2012-12-12 SMUELLER
    - Supply an explicit dynamic_config => 0 in META
    - Properly list BUILD_REQUIRES prereqs (P5-RT#116028)
    - Some optimizations. Removed useless "register" declarations.

2.136 2012-10-04 SMUELLER
    - Promote to stable release.
    - Drop some "register" declarations.

2.135_07 2012-08-07 SMUELLER
    - Use the new utf8 to code point functions - fixing a potential
      reading buffer overrun.
    - Data::Dumper: Sparseseen option to avoid building much of the seen
      hash: This has been measured to, in some cases, provide a 50% speed-up
    - Dumper.xs: Avoid scan_vstring on 5.17.3 and up
    - Avoid a warning from clang when compiling Data::Dumper
    - Fix DD's dumping of qr|\/|
    - Data::Dumper's Perl implementation was not working with overloaded
      blessed globs, which it thought were strings.
    - Allow Data::Dumper to load on miniperl

2.135_02 2011-12-29 SMUELLER
    - Makes DD dump *{''} properly.
    - [perl #101162] DD support for vstrings:
      Support for vstrings to Data::Dumper, in both Perl and XS

2.135_01 2011-12-19 SMUELLER
    - Make Data::Dumper UTF8- and null-clean with GVs.
    - In Dumper.xs, use sv_newmortal() instead of sv_mortalcopy(&PL_sv_undef)
      for efficiency.
    - Suppress compiler warning
    - Keep verbatim pod in Data::Dumper within 80 cols

2.131 2011-05-27 SMUELLER
    - Essentially the same as version 2.130_02, but a production release.

2.130_03 2011-05-20 SMUELLER
    - Essentially the same as version 2.130_02, but a CPAN release
      for the eventual 2.131.

    - This was only shipped with the perl core, never released to CPAN.
    - Convert overload.t to Test::More
    - Fix some spelling errors
    - Fix some compiler warnings
    - Fix an out of bounds write in Data-Dumper with malformed utf8 input

2.130 2010-11-20
    - C<Dumpxs> can now handle malformed UTF-8.

2.129 2010-10-20
    - C<Dumpxs> no longer crashes with globs returned by C<*$io_ref>
      [perl #72332].

2.128 2010-09-10 SMUELLER
    - Promote previous release to stable version with the correct version.

2.127 2010-09-10 SMUELLER
    - Promote previous release to stable version.

2.126_01 2010-09-06 SMUELLER
    - Port core perl changes e3ec2293dc, fe642606b19.
      Fixes core perl RT #74170 (handle the stack changing in the
      custom sort functions) and adds a test.

2.126 2010-04-15 SMUELLER
    - Fix Data::Dumper's Fix Terse(1) + Indent(2):
      perl-RT #73604: When $Data::Dumper::Terse is true,
      the indentation is thrown off.
      It appears to be acting as if the $VAR1 = is still there.

2.125 2009-08-08 SMUELLER
    - CPAN distribution fixes (meta information for META.yml).

2.124 2009-06-13 SMUELLER
    - Add three missing test files.

2.123 2009-06-11 SMUELLER
    - Re-add the INSTALLDIRS => 'perl' directive to Makefile.PL
      of the CPAN release.

2.122 2009-06-09 SMUELLER
    - Promote previous developer release to stable release.

2.121_20 2009-06-06 SMUELLER
    - A host of bug fixes and improvements that have
      accumulated in the perl core
    - Updated backport to 5.6.1 by Steffen Mueller <>.

2.121 2003-08-25 ILYAM
    - Backport to 5.6.1 by Ilya Martynov <>.

2.11  (unreleased)
    - C<0> is now dumped as such, not as C<'0'>.
    - qr// objects are now dumped correctly (provided a post-5.005_58) exists).
    - Implemented $Data::Dumper::Maxdepth, which was on the Todo list.
      Thanks to John Nolan <jpnolan@Op.Net>.

2.101 1999-05-01 GSAR
    - Minor release to sync with version in 5.005_03.  Fixes dump of
      dummy coderefs.

2.10 1998-10-31 GSAR
    - Bugfixes for dumping related undef values, globs, and better double
      quoting: three patches suggested by Gisle Aas <>.
    - Escaping of single quotes in the XS version could get tripped up
      by the presence of nulls in the string.  Fix suggested by
      Slaven Rezic <>.
    - Rather large scale reworking of the logic in how seen values
      are stashed. Anonymous scalars that may be encountered while
      traversing the structure are properly tracked, in case they become
      used in data dumped in a later pass.  There used to be a problem
      with the previous logic that prevented such structures from being
      dumped correctly.
    - Various additions to the testsuite.

2.09 1998-07-17 GSAR
    - Implement $Data::Dumper::Bless, suggested by Mark Daku <>.

2.081 1998-01-15 GSAR
    - Minor release to fix Makefile.PL not accepting MakeMaker args.

2.08 1997-12-07 GSAR
    - Glob dumps don't output superflous 'undef' anymore.
    - Fixes from Gisle Aas <> to make Dumper() work with
      overloaded strings in recent perls, and his new testsuite.
    - require 5.004.
    - A separate flag to always quote hash keys (on by default).
    - Recreating known CODE refs is now better supported.
    - Changed flawed constant SCALAR bless workaround.

2.07 1996-12-07 GSAR
    - Dumpxs output is now exactly the same as Dump.
      It still doesn't honor C<Useqq> though.
    - Regression tests test for identical output and C<eval>-ability.
    - Bug in *GLOB{THING} output fixed.
    - Other small enhancements.

2.06 1996-12-02 GSAR
    - Bugfix that was serious enough for new release--the bug cripples
      MLDBM.  Problem was "Attempt to modify readonly value..." failures
      that stemmed for a misguided SvPV_force() instead of a SvPV().)

2.05 1996-12-02 GSAR
    - Fixed the type mismatch that was causing Dumpxs test to fail
      on 64-bit platforms.
    - GLOB elements are dumped now when C<Purity> is set (using the
      *GLOB{THING} syntax).
    - The C<Freezer> option can be set to a method name to call
      before probing objects for dumping.  Some applications: objects with
      external data, can re-bless themselves into a transitional package;
      Objects the maintain ephemeral state (like open files) can put
      additional information in the object to facilitate persistence.
    - The corresponding C<Toaster> option, if set, specifies
      the method call that will revive the frozen object.
    - The C<Deepcopy> flag has been added to do just that.
    - Dumper does more aggressive cataloging of SCALARs encountered
      within ARRAY/HASH structures. Thanks to Norman Gaywood
      <> for reporting the problem.
    - Objects that C<overload> the '""' operator are now handled
      properly by the C<Dump> method.
    - Significant additions to the testsuite.
    - More documentation.

2.04b 1996-08-28 GSAR
    - Made dump of glob names respect C<Useqq> setting.
    - [@$%] are now escaped now when in double quotes.

2.03b 1996-08-26 GSAR
    - Fixed Dumpxs.  It was appending trailing nulls to globnames.
      (reported by Randal Schwartz <>).
    - Calling the C<Indent()> method on a dumper object now correctly
      resets the internal separator (reported by Curt Tilmes
    - New C<Terse> option to suppress the 'C<VARI<n> = >' prefix
      introduced.  If the option is set, they are output only when
      absolutely essential.
    - The C<Useqq> flag is supported (but not by the XSUB version yet).
    - Embedded nulls in keys are now handled properly by Dumpxs.
    - Dumper.xs now use various integer types in perl.h (should
      make it compile without noises on 64 bit platforms, although
      I haven't been able to test this).
    - All the dump methods now return a list of strings in a list context.

2.02b 1996-04-13 GSAR
    - Non portable sprintf usage in XS code fixed (thanks to
      Ulrich Pfeifer <>).

2.01b 1996-04-10 GSAR
    - Minor bugfix (single digit numbers were always getting quoted).

2.00b 1996-04-09 GSAR
    - C<Dumpxs> is now the exact XSUB equivalent of C<Dump>.
      The XS version is 4-5 times faster.
    - C<require 5.002>.
    - MLDBM example removed (as its own module, it has a separate CPAN
      reality now).
    - Fixed bugs in handling keys with wierd characters.  Perl can be
      tripped up in its implicit quoting of the word before '=>'.  The
      fix: C<Data::Dumper::Purity>, when set, always triggers quotes
      around hash keys.
    - Andreas Koenig <> pointed out that handling octals
      is busted.  His patch added.
    - Dead code removed, other minor documentation fixes.

1.23 1995-12-04 GSAR
    - MLDBM example added.
    - Several folks pointed out that quoting of ticks and backslashes
      in strings is missing. Added.
    - Ian Phillipps <> pointed out that numerics may lose
      precision without quotes.  Fixed.

1.21 1995-11-19 GSAR
    - Last stable version I can remember.