Use Trailingcomma option when available (RT#114609)
[p5sagit/Data-Dumper-Concise.git] / t / concise.t
index 6b45dd5..5836b8e 100644 (file)
@@ -11,17 +11,15 @@ my $dd = Data::Dumper->new([])
                      ->Deparse(1)
                      ->Quotekeys(0)
                      ->Sortkeys(1);
-
-my $dd_c = Dumper;
+$dd->Trailingcomma(1) if $dd->can('Trailingcomma');
 
 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;
@@ -29,12 +27,19 @@ foreach my $to_dump (
     local $Data::Dumper::Deparse = 1;
     local $Data::Dumper::Quotekeys = 0;
     local $Data::Dumper::Sortkeys = 1;
+    no warnings 'once'; # in case Trailingcomma option is unknown in this DD
+    local $Data::Dumper::Trailingcomma = 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');
 }
+
+my $out = DumperF { "arr: $_[0] str: $_[1]" } [qw(wut HALP)], "gnarl";
+
+like($out, qr{^arr: \[\n  "wut",\n  "HALP",?\n\]\n str: "gnarl"\n\z}, 'DumperF works!');
+
+like(Dumper([1..3]), qr/,\s*]\s*$/, 'trailing comma enabled')
+    if $dd->can('Trailingcomma');