use 5.006;
-$VERSION = '2.000';
+our $VERSION = '2.023';
require Exporter;
require Data::Dumper;
BEGIN { @ISA = qw(Exporter) }
-@EXPORT = qw(Dumper);
+@EXPORT = qw(Dumper DumperF DumperObject);
-sub Dumper {
+sub DumperObject {
my $dd = Data::Dumper->new([]);
+ $dd->Trailingcomma(1) if $dd->can('Trailingcomma');
$dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1);
- return $dd->Values([ @_ ])->Dump;
+}
+
+sub Dumper { DumperObject->Values([ @_ ])->Dump }
+
+sub DumperF (&@) {
+ my $code = shift;
+ return $code->(map Dumper($_), @_);
}
=head1 NAME
local $Data::Dumper::Deparse = 1;
local $Data::Dumper::Quotekeys = 0;
local $Data::Dumper::Sortkeys = 1;
+ local $Data::Dumper::Trailingcomma = 1;
warn Dumper($var);
}
use warnings;
use strict 'refs';
'fleem';
- }
+ },
}
instead of the default Data::Dumper output:
$VAR1 = {
- 'quux' => sub { "DUMMY" },
- 'foo' => 'bar
+ 'quux' => sub { "DUMMY" },
+ 'foo' => 'bar
baz'
};
(note the tab indentation, oh joy ...)
+(The trailing comma on the last element of an array or hash is enabled by a new
+feature in Data::Dumper version 2.159, which was first released in Perl 5.24.
+Using Data::Dumper::Concise with an older version of Data::Dumper will still
+work, but you won't get those commas.)
+
+If you need to get the underlying L<Dumper> object just call C<DumperObject>.
+
+Also try out C<DumperF> which takes a C<CodeRef> as the first argument to
+format the output. For example:
+
+ use Data::Dumper::Concise;
+
+ warn DumperF { "result: $_[0] result2: $_[1]" } $foo, $bar;
+
+Which is the same as:
+
+ warn 'result: ' . Dumper($foo) . ' result2: ' . Dumper($bar);
+
=head1 DESCRIPTION
This module always exports a single function, Dumper, which can be called