X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FData%2FDumper%2FConcise.pm;h=5beb1a54be0b71f6b3d209456b0361d46d05a9a8;hb=92264889a0f278aa61cdee48aef484496fb6e5ce;hp=3f7111c3941cb2bd704fc48270da8fda4048c152;hpb=7e7c5754783215e8964b61b6e0dff51084db3590;p=p5sagit%2FData-Dumper-Concise.git diff --git a/lib/Data/Dumper/Concise.pm b/lib/Data/Dumper/Concise.pm index 3f7111c..5beb1a5 100644 --- a/lib/Data/Dumper/Concise.pm +++ b/lib/Data/Dumper/Concise.pm @@ -2,22 +2,26 @@ package Data::Dumper::Concise; use 5.006; -$VERSION = '1.100'; +$VERSION = '2.012'; require Exporter; require Data::Dumper; BEGIN { @ISA = qw(Exporter) } -@EXPORT = qw(Dumper); +@EXPORT = qw(Dumper DumperF); sub Dumper { my $dd = Data::Dumper->new([]); $dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1); - return $dd unless @_; return $dd->Values([ @_ ])->Dump; } +sub DumperF (&@) { + my $code = shift; + return $code->(map Dumper($_), @_); +} + =head1 NAME Data::Dumper::Concise - Less indentation and newlines plus sub deparsing @@ -41,20 +45,6 @@ is equivalent to: warn Dumper($var); } -whereas - - my $dd = Dumper; - -is equivalent to: - - my $dd = Data::Dumper->new([]) - ->Terse(1) - ->Indent(1) - ->Useqq(1) - ->Deparse(1) - ->Quotekeys(0) - ->Sortkeys(1); - So for the structure: { foo => "bar\nbaz", quux => sub { "fleem" } }; @@ -73,26 +63,28 @@ Data::Dumper::Concise will give you: 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 ...) -=head1 DESCRIPTION +Also try out C which takes a C as the first argument to +format the output. For example: -This module always exports a single function, Dumper, which can be called -with an array of values to dump those values or with no arguments to -return the Data::Dumper object it's created. Note that this means that + use Data::Dumper::Concise; - Dumper @list + warn DumperF { "result: $_[0] result2: $_[1]" } $foo, $bar; -will probably not do what you wanted when @list is empty. In this case use +Which is the same as: - Dumper \@list + warn 'result: ' . Dumper($foo) . ' result2: ' . Dumper($bar); -instead. +=head1 DESCRIPTION + +This module always exports a single function, Dumper, which can be called +with an array of values to dump those values. It exists, fundamentally, as a convenient way to reproduce a set of Dumper options that we've found ourselves using across large numbers of applications, @@ -146,7 +138,7 @@ frew - Arthur Axel "fREW" Schmidt =head1 COPYRIGHT -Copyright (c) 2009 the Data::Dumper::Concise L and L +Copyright (c) 2010 the Data::Dumper::Concise L and L as listed above. =head1 LICENSE