use 5.006;
-$VERSION = '1.000';
+$VERSION = '2.020';
require Exporter;
require Data::Dumper;
BEGIN { @ISA = qw(Exporter) }
-@EXPORT = qw(Dumper);
+@EXPORT = qw(Dumper DumperF DumperObject);
-my $USAGE = 'Dumper() to get an object or Dumper($ref) to dump a reference please';
-
-sub Dumper {
- die $USAGE if @_ > 1;
+sub DumperObject {
my $dd = Data::Dumper->new([]);
$dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1);
- return $dd unless @_;
- my $ref = $_[0];
- die $USAGE unless ref($ref);
- return $dd->Values([ $ref ])->Dump;
+}
+
+sub Dumper { DumperObject->Values([ @_ ])->Dump }
+
+sub DumperF (&@) {
+ my $code = shift;
+ return $code->(map Dumper($_), @_);
}
=head1 NAME
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" } };
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
-with a single reference value to dump that value or with no arguments to
-return the Data::Dumper object it's created.
+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,
write a Data::Dumper::Concise::ButWithExtraTwiddlyBits if it makes you
happy. Then tell us so we can add it to the see also section.
+=head1 SUGARY SYNTAX
+
+This package also provides:
+
+L<Data::Dumper::Concise::Sugar> - provides Dwarn and DwarnS convenience functions
+
+L<Devel::Dwarn> - shorter form for Data::Dumper::Concise::Sugar
+
=head1 SEE ALSO
We use for some purposes, and dearly love, the following alternatives:
=head1 AUTHOR
-Matt S. Trout <mst@shadowcat.co.uk>
+mst - Matt S. Trout <mst@shadowcat.co.uk>
=head1 CONTRIBUTORS
-None required yet. Maybe this module is perfect (hahahahaha ...).
+frew - Arthur Axel "fREW" Schmidt <frioux@gmail.com>
=head1 COPYRIGHT
-Copyright (c) 2009 the Data::Dumper::Concise L</AUTHOR> and L</CONTRIBUTORS>
+Copyright (c) 2010 the Data::Dumper::Concise L</AUTHOR> and L</CONTRIBUTORS>
as listed above.
=head1 LICENSE