1 package Data::Dumper::Concise;
10 BEGIN { @ISA = qw(Exporter) }
15 my $dd = Data::Dumper->new([]);
16 $dd->Terse(1)->Indent(1)->Useqq(1)->Deparse(1)->Quotekeys(0)->Sortkeys(1);
17 return $dd->Values([ @_ ])->Dump;
22 Data::Dumper::Concise - Less indentation and newlines plus sub deparsing
26 use Data::Dumper::Concise;
34 local $Data::Dumper::Terse = 1;
35 local $Data::Dumper::Indent = 1;
36 local $Data::Dumper::Useqq = 1;
37 local $Data::Dumper::Deparse = 1;
38 local $Data::Dumper::Quotekeys = 0;
39 local $Data::Dumper::Sortkeys = 1;
45 { foo => "bar\nbaz", quux => sub { "fleem" } };
47 Data::Dumper::Concise will give you:
58 instead of the default Data::Dumper output:
61 'quux' => sub { "DUMMY" },
66 (note the tab indentation, oh joy ...)
70 This module always exports a single function, Dumper, which can be called
71 with an array of values to dump those values.
73 It exists, fundamentally, as a convenient way to reproduce a set of Dumper
74 options that we've found ourselves using across large numbers of applications,
75 primarily for debugging output.
77 The principle guiding theme is "all the concision you can get while still
78 having a useful dump and not doing anything cleverer than setting Data::Dumper
79 options" - it's been pointed out to us that Data::Dump::Streamer can produce
80 shorter output with less lines of code. We know. This is simpler and we've
81 never seen it segfault. But for complex/weird structures, it generally rocks.
82 You should use it as well, when Concise is underkill. We do.
84 Why is deparsing on when the aim is concision? Because you often want to know
85 what subroutine refs you have when debugging and because if you were planning
86 to eval this back in you probably wanted to remove subrefs first and add them
87 back in a custom way anyway. Note that this -does- force using the pure perl
88 Dumper rather than the XS one, but I've never in my life seen Data::Dumper
89 show up in a profile so "who cares?".
91 =head1 BUT BUT BUT ...
93 Yes, we know. Consider this module in the ::Tiny spirit and feel free to
94 write a Data::Dumper::Concise::ButWithExtraTwiddlyBits if it makes you
95 happy. Then tell us so we can add it to the see also section.
99 This package also provides:
101 L<Data::Dumper::Concise::Sugar> - provides Dwarn and DwarnS convenience functions
103 L<Devel::Dwarn> - shorter form for Data::Dumper::Concise::Sugar
107 We use for some purposes, and dearly love, the following alternatives:
109 L<Data::Dump> - prettiness oriented but not amazingly configurable
111 L<Data::Dump::Streamer> - brilliant. beautiful. insane. extensive. excessive. try it.
113 L<JSON::XS> - no, really. If it's just plain data, JSON is a great option.
117 mst - Matt S. Trout <mst@shadowcat.co.uk>
121 frew - Arthur Axel "fREW" Schmidt <frioux@gmail.com>
125 Copyright (c) 2010 the Data::Dumper::Concise L</AUTHOR> and L</CONTRIBUTORS>
130 This library is free software and may be distributed under the same terms