PackageDescription | Given a list of scalars or reference variables, writes out their contents
in perl syntax. The references can also be objects. The content of each
variable is output in a single Perl statement. Handles self-referential
structures correctly.
The return value can be 'eval'ed to get back an identical copy of the
original reference structure. (Please do consider the security implications
of eval'ing code from untrusted sources!)
Any references that are the same as one of those passed in will be named
'$VAR'_n_ (where _n_ is a numeric suffix), and other duplicate references
to substructures within '$VAR'_n_ will be appropriately labeled using arrow
notation. You can specify names for individual values to be dumped if you
use the 'Dump()' method, or you can change the default '$VAR' prefix to
something else. See '$Data::Dumper::Varname' and '$Data::Dumper::Terse'
below.
The default output of self-referential structures can be 'eval'ed, but the
nested references to '$VAR'_n_ will be undefined, since a recursive
structure cannot be constructed using one Perl statement. You should set
the 'Purity' flag to 1 to get additional statements that will correctly
fill in these references. Moreover, if 'eval'ed when strictures are in
effect, you need to ensure that any variables it accesses are previously
declared.
In the extended usage form, the references to be dumped can be given
user-specified names. If a name begins with a '*', the output will describe
the dereferenced type of the supplied reference for hashes and arrays, and
coderefs. Output of names will be avoided where possible if the 'Terse'
flag is set.
In many cases, methods that are used to set the internal state of the
object will return the object itself, so method calls can be conveniently
chained together.
Several styles of output are possible, all controlled by setting the
'Indent' flag. See Configuration Variables or Methods below for details. |