Acme::Dump::And::Dumper - dump data structures without seeing any object guts
use Acme::Dump::And::Dumper; my $data = { foo => 'bar', ber => { beer => [qw/x y z/], obj => bless([], 'Foo::Bar'), }, }; print DnD $data; ## Prints: ## $VAR1 = { ## 'ber' => { ## 'obj' => 'obj[Foo::Bar]', ## 'beer' => [ ## 'x', ## 'y', ## 'z' ## ] ## }, ## 'foo' => 'bar' ## }; # All the Data::Dumper stuff is still there... $Data::Dumper::Useqq = 1; print DnD "Foo\nBar"; # ... even the original Dumper() print Dumper "Foo\nBar";
A Data::Dumper, with an additional sub that's like Dumper() but doesn't dump the contents of object refs.
Dumper()
In addition to all the stuff available for export in Data::Dumper, this module provides DnD() function (pneumonic: "Dump'n'Dumper").
DnD()
DnD
print DnD $data; # Data::Dumper's vars are still available: $Data::Dumper::Useqq = 1; print DnD "Foo\nBar";
Takes the same stuff and returns the same output as Data::Dumper::Dumper(), except all of the objects will be replaced with obj[Foo::Bar], where Foo::Bar is object's class. See caveats section below.
Data::Dumper::Dumper()
obj[Foo::Bar]
Foo::Bar
Whenever possible, the module will try to deep clone the structure before messing with it and dumping it. However, since not everything is deep clonable, if the deep clone fails, the module will modify the original data structure, and method call on what used to be objects will obviously fail.
This module arose from my frustration of trying to get rid of object guts in my dumped data (e.g. dumping Foo::Bar that is a blessed hashref, would also dump all the contents of that hashref). Subsequently, during a conversation on IRC, tm604 came up with a hack using $Data::Dumper::Freezer, and the following comment from hoelzro made me decide to release a module I could actually use, when I don't want to see any object guts.
tm604
$Data::Dumper::Freezer
hoelzro
<hoelzro> Data::Dumper::And::Dumper * hoelzro ducks <hoelzro> s/Dumper/Dump/ # ruined my own awful joke
P.S.: eventually I ended up using Data::Rmap instead of the Freezer.
Fork this module on GitHub: https://github.com/zoffixznet/Acme-Dump-And-Dumper
To report bugs or request features, please use https://github.com/zoffixznet/Acme-Dump-And-Dumper/issues
If you can't access GitHub, you can email your request to bug-Acme-Dump-And-Dumper at rt.cpan.org
bug-Acme-Dump-And-Dumper at rt.cpan.org
Zoffix Znet <zoffix at cpan.org> (http://zoffix.com/, http://haslayout.net/)
You can use and distribute this module under the same terms as Perl itself. See the LICENSE file included in this distribution for complete details.
LICENSE
To install Acme::Dump::And::Dumper, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::Dump::And::Dumper
CPAN shell
perl -MCPAN -e shell install Acme::Dump::And::Dumper
For more information on module installation, please visit the detailed CPAN module installation guide.