X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FData%2FDumper%2FConcise.pm;h=543f8ce89013854d8168f0ee9edc34c4157339a8;hb=4aab360553cca9fc8b7be05bd6134928cf016ce3;hp=e9c7d4dc8494c242594fc6ad447416e368577a21;hpb=c8b31788a1cef439d63dc4cd808995778c73e1c5;p=p5sagit%2FData-Dumper-Concise.git diff --git a/lib/Data/Dumper/Concise.pm b/lib/Data/Dumper/Concise.pm index e9c7d4d..543f8ce 100644 --- a/lib/Data/Dumper/Concise.pm +++ b/lib/Data/Dumper/Concise.pm @@ -2,19 +2,26 @@ package Data::Dumper::Concise; use 5.006; -$VERSION = '2.010'; +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 @@ -37,6 +44,7 @@ is equivalent to: local $Data::Dumper::Deparse = 1; local $Data::Dumper::Quotekeys = 0; local $Data::Dumper::Sortkeys = 1; + local $Data::Dumper::Trailingcomma = 1; warn Dumper($var); } @@ -52,7 +60,7 @@ Data::Dumper::Concise will give you: use warnings; use strict 'refs'; 'fleem'; - } + }, } instead of the default Data::Dumper output: @@ -65,6 +73,24 @@ instead of the default Data::Dumper output: (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 object just call C. + +Also try out C which takes a C 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