SYNOPSIS

     use Data::Dmp; # exports dd() and dmp()
     dd [1, 2, 3];

DESCRIPTION

    This module, Data::Dmp, is inspired by Data::Dump and is my personal
    experiment. I want some of Data::Dump's features which I currently need
    and don't need the others that I currently do not need. I also want a
    smaller code base so I can easily modify (or subclass) it for custom
    dumping requirements.

    Compared to Data::Dump, Data::Dmp is also pure-Perl, dumps Perl data
    structure as runnable Perl code, supports circular/blessed references.
    Unlike Data::Dump, Data::Dmp does not identify tied data, does not
    support globs, does not support filtering, and mostly does not bother
    to align hash keys, identify ranges/repetition pattern. This makes the
    code simpler.

    I originally created Data::Dmp when wanting to write Data::Dmp::Org. At
    first I tried to modify Data::Dump, but then got distracted by the
    extra bits that I don't need.

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.

BENCHMARKS

    Because Data::Dmp's code is simpler than Data::Dump and it does less,
    Data::Dmp is significantly faster than Data::Dump (around 5 times for
    some small data structures). Data::Dmp is even faster than Data::Dumper
    for some small data structures.

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.

    Currently Data::Dmp does not support "deparse". As for other features,
    currently they are implemented if I personally have the need for them.

    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.

