Bumping version to 2.023
[p5sagit/Data-Dumper-Concise.git] / lib / Data / Dumper / Concise.pm
index cecc57c..8adc5a9 100644 (file)
@@ -2,19 +2,25 @@ package Data::Dumper::Concise;
 
 use 5.006;
 
-$VERSION = '2.000';
+$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->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
@@ -58,13 +64,26 @@ 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 ...)
 
+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