->Quotekeys(0)
->Sortkeys(1);
-my $dd_c = Dumper;
+foreach my $to_dump (
+ [ { foo => "bar\nbaz", quux => sub { "fleem" } } ],
+ [ 'one', 'two' ]
+) {
-my $to_dump = { foo => "bar\nbaz", quux => sub { "fleem" } };
+ $dd->Values([ @$to_dump ]);
-$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);
+ };
-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->Dump, 'Both Data::Dumper usages equivalent');
+ is($example, Dumper(@$to_dump), 'Subroutine call usage equivalent');
+}
-is($example, $dd_c->Dump, 'Returned object usage equivalent');
+my $out = DumperF { "arr: $_[0] str: $_[1]" } [qw(wut HALP)], "gnarl";
-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');
+is($out, qq{arr: [\n "wut",\n "HALP"\n]\n str: "gnarl"\n}, 'DumperF works!');