diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-08 00:16:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-08 00:16:42 +0000 |
commit | 34a8597760ab5740abd49b6d8be10e1876f5ce98 (patch) | |
tree | 099a794912a28b3ebbc857961643ba29b28e674a /Master/tlpkg/tlperl/lib/Data | |
parent | 2ca3610031316a7312d046d3ae4c783452831216 (diff) |
(tl)perl 5.26.1 from siep
git-svn-id: svn://tug.org/texlive/trunk@46882 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Data')
-rw-r--r-- | Master/tlpkg/tlperl/lib/Data/Dumper.pm | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/Master/tlpkg/tlperl/lib/Data/Dumper.pm b/Master/tlpkg/tlperl/lib/Data/Dumper.pm index 13be89d8fbd..00f6326ee13 100644 --- a/Master/tlpkg/tlperl/lib/Data/Dumper.pm +++ b/Master/tlpkg/tlperl/lib/Data/Dumper.pm @@ -10,16 +10,15 @@ package Data::Dumper; BEGIN { - $VERSION = '2.160'; # Don't forget to set version and release + $VERSION = '2.167'; # Don't forget to set version and release } # date in POD below! #$| = 1; use 5.006_001; require Exporter; -require overload; -use Carp; +use Carp (); BEGIN { @ISA = qw(Exporter); @@ -70,7 +69,7 @@ $Maxrecurse = 1000 unless defined $Maxrecurse; sub new { my($c, $v, $n) = @_; - croak "Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])" + Carp::croak("Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])") unless (defined($v) && (ref($v) eq 'ARRAY')); $n = [] unless (defined($n) && (ref($n) eq 'ARRAY')); @@ -170,11 +169,11 @@ sub Seen { $s->{seen}{$id} = [$k, $v]; } else { - carp "Only refs supported, ignoring non-ref item \$$k"; + Carp::carp("Only refs supported, ignoring non-ref item \$$k"); } } else { - carp "Value of ref must be defined; ignoring undefined item \$$k"; + Carp::carp("Value of ref must be defined; ignoring undefined item \$$k"); } } return $s; @@ -195,7 +194,7 @@ sub Values { return $s; } else { - croak "Argument to Values, if provided, must be array ref"; + Carp::croak("Argument to Values, if provided, must be array ref"); } } else { @@ -214,7 +213,7 @@ sub Names { return $s; } else { - croak "Argument to Names, if provided, must be array ref"; + Carp::croak("Argument to Names, if provided, must be array ref"); } } else { @@ -227,7 +226,6 @@ sub DESTROY {} sub Dump { return &Dumpxs unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) - || $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse}) # Use pure perl version on earlier releases on EBCDIC platforms || (! $IS_ASCII && $] lt 5.021_010); @@ -439,7 +437,7 @@ sub _dump { if (ref($s->{sortkeys}) eq 'CODE') { $keys = $s->{sortkeys}($val); unless (ref($keys) eq 'ARRAY') { - carp "Sortkeys subroutine did not return ARRAYREF"; + Carp::carp("Sortkeys subroutine did not return ARRAYREF"); $keys = []; } } @@ -487,16 +485,16 @@ sub _dump { require B::Deparse; my $sub = 'sub ' . (B::Deparse->new)->coderef2text($val); $pad = $s->{sep} . $s->{pad} . $s->{apad} . $s->{xpad} x ($s->{level} - 1); - $sub =~ s/\n/$pad/gse; + $sub =~ s/\n/$pad/gs; $out .= $sub; } else { $out .= 'sub { "DUMMY" }'; - carp "Encountered CODE ref, using dummy placeholder" if $s->{purity}; + Carp::carp("Encountered CODE ref, using dummy placeholder") if $s->{purity}; } } else { - croak "Can't handle '$realtype' type"; + Carp::croak("Can't handle '$realtype' type"); } if ($realpack and !$no_bless) { # we have a blessed ref @@ -1212,9 +1210,10 @@ $Data::Dumper::Deparse I<or> $I<OBJ>->Deparse(I<[NEWVAL]>) Can be set to a boolean value to control whether code references are turned into perl source code. If set to a true value, C<B::Deparse> -will be used to get the source of the code reference. Using this option -will force using the Perl implementation of the dumper, since the fast -XSUB implementation doesn't support it. +will be used to get the source of the code reference. In older versions, +using this option imposed a significant performance penalty when dumping +parts of a data structure other than code references, but that is no +longer the case. Caution : use this option only if you know that your coderefs will be properly reconstructed by C<B::Deparse>. @@ -1435,15 +1434,9 @@ the C<Deparse> flag), an anonymous subroutine that contains the string '"DUMMY"' will be inserted in its place, and a warning will be printed if C<Purity> is set. You can C<eval> the result, but bear in mind that the anonymous sub that gets created is just a placeholder. -Someday, perl will have a switch to cache-on-demand the string -representation of a compiled piece of code, I hope. If you have prior -knowledge of all the code refs that your data structures are likely -to have, you can use the C<Seen> method to pre-seed the internal reference -table and make the dumped output point to them, instead. See L</EXAMPLES> -above. - -The C<Deparse> flag makes Dump() run slower, since the XSUB -implementation does not support it. +Even using the C<Deparse> flag will in some cases produce results that +behave differently after being passed to C<eval>; see the documentation +for L<B::Deparse>. SCALAR objects have the weirdest looking C<bless> workaround. @@ -1466,13 +1459,13 @@ be to use the C<Sortkeys> filter of Data::Dumper. Gurusamy Sarathy gsar@activestate.com -Copyright (c) 1996-2014 Gurusamy Sarathy. All rights reserved. +Copyright (c) 1996-2017 Gurusamy Sarathy. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 VERSION -Version 2.160 (January 12 2016) +Version 2.167 (January 4 2017) =head1 SEE ALSO |