proposed ::Sugar class
Matt S Trout [Mon, 7 Dec 2009 20:46:38 +0000 (20:46 +0000)]
lib/Data/Dumper/Concise/Sugar.pm [new file with mode: 0644]

diff --git a/lib/Data/Dumper/Concise/Sugar.pm b/lib/Data/Dumper/Concise/Sugar.pm
new file mode 100644 (file)
index 0000000..0515052
--- /dev/null
@@ -0,0 +1,65 @@
+package Data::Dumper::Concise::Sugar;
+
+use 5.006;
+
+use Exporter ();
+use Data::Dumper::Concise ();
+
+BEGIN { @ISA = qw(Exporter) }
+
+@EXPORT = qw(Dwarn DwarnS);
+
+sub Dwarn { warn Data::Dumper::Concise::Dumper @_; @_ }
+
+sub DwarnS ($) { warn Data::Dumper::Concise::Dumper $_[0]; $_[0] }
+
+=head1 NAME
+
+Data::Dumper::Concise::Sugar - return Dwarn @return_value
+
+=head1 SYNOPSIS
+
+  use Data::Dumper::Concise::Sugar;
+
+  return Dwarn some_call(...)
+
+is equivalent to:
+
+  use Data::Dumper::Concise;
+
+  my @return = some_call(...);
+  warn Dumper(@return);
+  return @return;
+
+but shorter. If you need to force scalar context on the value,
+
+  use Data::Dumper::Concise::Sugar;
+
+  return DwarnS some_call(...)
+
+is equivalent to:
+
+  use Data::Dumper::Concise;
+
+  my $return = some_call(...);
+  warn Dumper($return);
+  return $return;
+
+=head1 DESCRIPTION
+
+  use Data::Dumper::Concise::Sugar;
+
+will import Dwarn and DwarnS into your namespace. Using L<Exporter>, so see
+its docs for ways to make it do something else.
+
+=head2 Dwarn
+
+  sub Dwarn { warn Data::Dumper::Concise::Dumper @_; @_ }
+
+=head3 DwarnS
+
+  sub DwarnS ($) { warn Data::Dumper::Concise::Dumper $_[0]; $_[0] }
+
+=cut 
+
+1;