DwarnL + wa
[p5sagit/Data-Dumper-Concise.git] / lib / Data / Dumper / Concise / Sugar.pm
CommitLineData
ce1f3e8e 1package Data::Dumper::Concise::Sugar;
2
3use 5.006;
4
5use Exporter ();
6use Data::Dumper::Concise ();
7
8BEGIN { @ISA = qw(Exporter) }
9
e6746e64 10@EXPORT = qw(Dwarn DwarnS DwarnL);
ce1f3e8e 11
e6746e64 12sub Dwarn { return DwarnL(@_) if wantarray; DwarnS($_[0]) }
13
14sub DwarnL { warn Data::Dumper::Concise::Dumper @_; @_ }
ce1f3e8e 15
16sub DwarnS ($) { warn Data::Dumper::Concise::Dumper $_[0]; $_[0] }
17
18=head1 NAME
19
20Data::Dumper::Concise::Sugar - return Dwarn @return_value
21
22=head1 SYNOPSIS
23
24 use Data::Dumper::Concise::Sugar;
25
26 return Dwarn some_call(...)
27
28is equivalent to:
29
30 use Data::Dumper::Concise;
31
32 my @return = some_call(...);
33 warn Dumper(@return);
34 return @return;
35
36but shorter. If you need to force scalar context on the value,
37
38 use Data::Dumper::Concise::Sugar;
39
40 return DwarnS some_call(...)
41
42is equivalent to:
43
44 use Data::Dumper::Concise;
45
46 my $return = some_call(...);
47 warn Dumper($return);
48 return $return;
49
01223632 50Another trick that is extremely useful when doing method chaining is the
51following:
52
53 my $foo = Bar->new;
54 $foo->bar->baz->Data::Dumper::Concise::Sugar::DwarnS->biff;
55
56which is the same as:
57
58 my $foo = Bar->new;
59 (DwarnS $foo->bar->baz)->biff;
60
ce1f3e8e 61=head1 DESCRIPTION
62
63 use Data::Dumper::Concise::Sugar;
64
65will import Dwarn and DwarnS into your namespace. Using L<Exporter>, so see
66its docs for ways to make it do something else.
67
68=head2 Dwarn
69
70 sub Dwarn { warn Data::Dumper::Concise::Dumper @_; @_ }
71
72=head3 DwarnS
73
74 sub DwarnS ($) { warn Data::Dumper::Concise::Dumper $_[0]; $_[0] }
75
dc06d25b 76=head1 SEE ALSO
77
78You probably want L<Devel::Dwarn>, it's the shorter name for this module.
79
80=cut
ce1f3e8e 81
821;