X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FData%2FDumper%2FConcise%2FSugar.pm;h=f82754a249af945f1ceacfccb36c460034683c1e;hb=2566c738d28b5c6fd48615bd8a7a297d3e92cffd;hp=4b33717b0749b3fd6437d46870fdf380aae8c114;hpb=bef8cf5e5e01eadafefbd95cb99059a96faf73c7;p=p5sagit%2FData-Dumper-Concise.git diff --git a/lib/Data/Dumper/Concise/Sugar.pm b/lib/Data/Dumper/Concise/Sugar.pm index 4b33717..f82754a 100644 --- a/lib/Data/Dumper/Concise/Sugar.pm +++ b/lib/Data/Dumper/Concise/Sugar.pm @@ -7,7 +7,10 @@ use Data::Dumper::Concise (); BEGIN { @ISA = qw(Exporter) } -@EXPORT = qw($Dwarn $DwarnN Dwarn DwarnS DwarnL DwarnN); +@EXPORT = qw( + $Dwarn $DwarnN Dwarn DwarnS DwarnL DwarnN + $Ddie $DdieN Ddie DdieS DdieL DdieN DdieD +); sub Dwarn { return DwarnL(@_) if wantarray; DwarnS($_[0]) } @@ -24,6 +27,23 @@ sub DwarnN ($) { warn(($x?$x:'(anon)') . ' => ' . Data::Dumper::Concise::Dumper $_[0]); $_[0] } +sub DwarnF (&@) { my $c = shift; warn &Data::Dumper::Concise::DumperF($c, @_); @_ } + +sub Ddie { DdieL(@_) if wantarray; DdieS($_[0]) } + +our $Ddie = \&Ddie; +our $DdieN = \&DdieN; + +sub DdieL { die Data::Dumper::Concise::Dumper @_ } + +sub DdieS ($) { die Data::Dumper::Concise::Dumper $_[0] } + +sub DdieN ($) { + require Devel::ArgNames; + my $x = Devel::ArgNames::arg_names(); + die(($x?$x:'(anon)') . ' => ' . Data::Dumper::Concise::Dumper $_[0]); +} + =head1 NAME Data::Dumper::Concise::Sugar - return Dwarn @return_value @@ -100,6 +120,22 @@ is equivalent to: warn Dumper($return); return $return; +If you want to format the output of your data structures, try DwarnF + + my ($a, $c) = DwarnF { "awesome: $_[0] not awesome: $_[1]" } $awesome, $cheesy; + +is equivalent to: + + my @return = ($awesome, $cheesy); + warn DumperF { "awesome: $_[0] not awesome: $_[1]" } $awesome, $cheesy; + return @return; + +If you want to immediately die after outputting the data structure, every +Dwarn subroutine has a paired Ddie version, so just replace the warn with die. +For example: + + DdieL 'foo', { bar => 'baz' }; + =head1 DESCRIPTION use Data::Dumper::Concise::Sugar; @@ -133,6 +169,10 @@ L, so see its docs for ways to make it do something else. B: this requires L to be installed. +=head2 DwarnF + + sub DwarnF (&@) { my $c = shift; warn &Data::Dumper::Concise::DumperF($c, @_); @_ } + =head1 TIPS AND TRICKS =head2 global usage