add $Dwarn
[p5sagit/Data-Dumper-Concise.git] / lib / Devel / Dwarn.pm
CommitLineData
60e18490 1package Devel::Dwarn;
2
2570b7be 3use Data::Dumper::Concise::Sugar;
60e18490 4
d71b0a31 5sub import {
6 Data::Dumper::Concise::Sugar->export_to_level(1, @_);
7}
60e18490 8
dc06d25b 9=head1 NAME
10
11Devel::Dwarn - return Dwarn @return_value
12
13=head1 SYNOPSIS
9469b5b0 14
15 use Devel::Dwarn;
dc06d25b 16
17 return Dwarn some_call(...)
18
19is equivalent to:
20
21 use Data::Dumper::Concise;
22
13b908a8 23 if (wantarray) {
24 my @return = some_call(...);
25 warn Dumper(@return);
26 return @return;
27 } else {
28 my $return = some_call(...);
29 warn Dumper($return);
30 return $return;
31 }
dc06d25b 32
33but shorter. If you need to force scalar context on the value,
34
9469b5b0 35 use Devel::Dwarn;
dc06d25b 36
37 return DwarnS some_call(...)
38
39is equivalent to:
40
41 use Data::Dumper::Concise;
42
43 my $return = some_call(...);
44 warn Dumper($return);
45 return $return;
46
13b908a8 47If you need to force list context on the value,
48
9469b5b0 49 use Devel::Dwarn;
13b908a8 50
51 return DwarnL some_call(...)
52
53is equivalent to:
54
55 use Data::Dumper::Concise;
56
57 my @return = some_call(...);
58 warn Dumper(@return);
59 return @return;
60
9469b5b0 61If you want to label your output, try DwarnN
62
63 use Devel::Dwarn;
64
65 return DwarnN $foo
66
67is equivalent to:
68
69 use Data::Dumper::Concise;
70
71 my @return = some_call(...);
72 warn '$foo => ' . Dumper(@return);
73 return @return;
74
7194c025 75If you want to output a reference returned by a method easily, try $Dwarn
76
77 $foo->bar->{baz}->$Dwarn
78
79is equivalent to:
80
81 my $return = $foo->bar->{baz};
82 warn Dumper($return);
83 return $return;
84
13b908a8 85=head1 TIPS AND TRICKS
86
87=head2 global usage
88
89Instead of always just doing:
90
91 use Devel::Dwarn;
92
93 Dwarn ...
94
95We tend to do:
96
97 perl -MDevel::Dwarn foo.pl
98
99(and then in the perl code:)
100
101 ::Dwarn ...
102
103That way, if you leave them in and run without the C<< use Devel::Dwarn >>
104the program will fail to compile and you are less likely to check it in by
105accident. Furthmore it allows that much less friction to add debug messages.
106
107=head2 method chaining
108
109One trick which is useful when doing method chaining is the following:
01223632 110
111 my $foo = Bar->new;
112 $foo->bar->baz->Devel::Dwarn::DwarnS->biff;
113
114which is the same as:
115
116 my $foo = Bar->new;
117 (DwarnS $foo->bar->baz)->biff;
118
dc06d25b 119=head1 SEE ALSO
120
121This module is really just a shortcut for L<Data::Dumper::Concise::Sugar>, check
122it out for more complete documentation.
123
124=cut
125
60e18490 1261;