How do I print out or copy a recursive data structure?

The Data::Dumper module on CPAN (or the 5.005 release of Perl) is great for printing out data structures. The Storable module, found on CPAN, provides a function called dclone that recursively copies its argument.

    use Storable qw(dclone); 
    $r2 = dclone($r1);
Where $r1 can be a reference to any kind of data structure you'd like. It will be deeply copied. Because dclone takes and returns references, you'd have to add extra punctuation if you had a hash of arrays that you wanted to copy.

    %newhash = %{ dclone(\%oldhash) };

Back to perlfaq4