SYNOPSIS use Data::Dmp; # exports dd() and dmp() dd [1, 2, 3]; # prints "[1,2,3]" $a = dmp({a => 1}); # -> "{a=>1}" DESCRIPTION Data::Dmp is a Perl dumper like Data::Dumper. It's compact (only about 120 lines of code long), starts fast and does not use other module except Regexp::Stringify when dumping regexes. It produces compact output (similar to Data::Dumper::Concise. It's faster than Data::Dumper, but does not offer the various formatting options. It supports dumping objects, regexes, circular objects. Its code is based on Data::Dump. It currently does not support "deparse" like Data::Dumper and dumps coderefs as sub{'DUMMY'}. Unlike Data::Dump, it currently does not support identifying tied data or globs. FUNCTIONS dd($data, ...) => $data ... Exported by default. Like Data::Dump's dd (a.k.a. dump), print one or more data to STDOUT. Unlike Data::Dump's dd, it always prints and return the original data (like XXX), making it convenient to insert into expressions. This also removes ambiguity and saves one wantarray() call. dmp($data, ...) => $str Exported by default. Return dump result as string. Unlike Data::Dump's dd (a.k.a. dump), it never prints and only return the data. SETTINGS $Data::Dmp::OPT_PERL_VERSION => str Set target Perl version. Currently this is used when passing to Regexp::Stringify. If you set this to, say 5.010, then the dumped code will keep compatibility with Perl 5.10.0. FAQ When to use Data::Dmp? How does it compare to other dumper modules? Data::Dmp might be suitable for you if you want a relatively fast pure-Perl data structure dumper to eval-able Perl code. It produces compact, single-line Perl code but offers little/no formatting options. Data::Dmp and Data::Dump module family usually produce Perl code that is "more eval-able", e.g. it can recreate circular structure. Data::Dump produces nicer output (some alignment, use of range operator to shorten lists, use of base64 for binary data, etc) but no built-in option to produce compact/single-line output. It's also relatively slow. I usually use its variant, Data::Dump::Color, for console debugging. Data::Dumper is core module, offers a lot of formatting options (like disabling hash key sorting, setting verboseness/indent level, and so on) but you usually have to configure it quite a bit before it does exactly like you want (that's why there are modules on CPAN that are just wrapping Data::Dumper with some configuration, like Data::Dumper::Concise et al). It does not support dumping Perl code that can recreate circular structures. Of course, dumping to eval-able Perl code is slow (not to mention the cost of re-loading the code back to in-memory data, via eval-ing) compared to dumping to JSON, YAML, Sereal, or other format. So you need to decide first whether this is the appropriate route you want to take. SEE ALSO Data::Dump and other variations/derivate works in Data::Dump::*. Data::Dumper and its variants. Data::Printer. YAML, JSON, Storable, Sereal, and other serialization formats.