Data::Dumper



use Data::Dumper;
print Dumper($store);

When used on the example from Class::Struct, this prints:

$VAR1 = bless( {
 'Shoppe::owner' => 'Abdul Alhazred', 'Shoppe::stock' => {
 'charms' => 3, 'tutorials' => 208, 'potions' => 'none' }, 'Shoppe::boss' => bless( {
 'Manager::name' => 'Prof L. P. Haitch', 'Manager::salary' => 'madness', 'Manager::started' => 'Sat Apr 1 16:18:13 2000' }, 'Manager' ), 'Shoppe::addrs' => [ 'Miskatonic University', 'Innsmouth, Mass.' ] }, 'Shoppe' );


The Data::Dumper module's Dumper function takes a list of scalars (including references, which can even refer to objects) and returns a printable or evalable string that accurately reproduces an faithful copy of the original. You could use this to write out a saved version of a data structure to a regular disk file or into a DBM file, or to pass it to another process over a pipe or socket connection. This module can be used with MLDBM from CPAN and DB_File to implement a DBM file that can transparently store complex data values, not just flat strings. Other stringification (or serialization, or marshalling) modules include Storable and FreezeThaw, both available from CPAN.