use 5.006;
-$VERSION = '1.001';
+$VERSION = '1.002';
require Exporter;
require Data::Dumper;
@EXPORT = qw(Dumper);
-my $USAGE = 'Dumper() to get an object or Dumper($ref) to dump a reference please';
-
sub Dumper {
- die $USAGE if @_ > 1;
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;
+ return $dd->Values([ @_ ])->Dump;
}
=head1 NAME
=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 or with no arguments to
+return the Data::Dumper object it's created. Note that this means that
+
+ Dumper @list
+
+will probably not do what you wanted when @list is empty. In this case use
+
+ Dumper \@list
+
+instead.
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,
my $dd_c = Dumper;
-my $to_dump = { foo => "bar\nbaz", quux => sub { "fleem" } };
-
-$dd_c->Values([ $to_dump ]);
-$dd->Values([ $to_dump ]);
-
-my $example = do {
- local $Data::Dumper::Terse = 1;
- local $Data::Dumper::Indent = 1;
- local $Data::Dumper::Useqq = 1;
- local $Data::Dumper::Deparse = 1;
- local $Data::Dumper::Quotekeys = 0;
- local $Data::Dumper::Sortkeys = 1;
- Data::Dumper::Dumper($to_dump);
-};
-
-is($example, $dd->Dump, 'Both Data::Dumper usages equivalent');
-
-is($example, $dd_c->Dump, 'Returned object usage equivalent');
-
-is($example, Dumper($to_dump), 'Subroutine call usage equivalent');
-
-ok(!eval { Dumper(1); 1 }, 'Non-ref call dies');
-
-ok(!eval { Dumper({}, {}); 1 }, 'Multi-ref call dies');
+foreach my $to_dump (
+ [ { foo => "bar\nbaz", quux => sub { "fleem" } } ],
+ [ 'one', 'two' ]
+) {
+
+ $dd_c->Values([ @$to_dump ]);
+ $dd->Values([ @$to_dump ]);
+
+ my $example = do {
+ local $Data::Dumper::Terse = 1;
+ local $Data::Dumper::Indent = 1;
+ local $Data::Dumper::Useqq = 1;
+ local $Data::Dumper::Deparse = 1;
+ local $Data::Dumper::Quotekeys = 0;
+ local $Data::Dumper::Sortkeys = 1;
+ Data::Dumper::Dumper(@$to_dump);
+ };
+
+ is($example, $dd->Dump, 'Both Data::Dumper usages equivalent');
+
+ is($example, $dd_c->Dump, 'Returned object usage equivalent');
+
+ is($example, Dumper(@$to_dump), 'Subroutine call usage equivalent');
+}