in reply to How do you clone a data structure?

Clone::clone() if I need performance; because it was faster than Storable when I tried it a few years ago. That may have changed; YMMV.

Though often as not when I need to clone something, I'll use a custom clone() for the purpose, that only deals with the cases I need to deal with. For example:

sub clone { my $ref = shift; ref( $ref ) or return $ref; ref( $ref ) eq 'SCALAR' and return \$$ref; ref( $ref ) eq 'HASH' and return { map+( $_, clone( $ref->{$_} ) +), keys %{ $ref } }; ref( $ref ) eq 'ARRAY' and return [ map clone( $ref->[$_] ), 0 .. + $#{ $ref } ]; }

That deals with most 'normal' data-structures that don't contain 'exotics' -- bless refs or coderefs and the like.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?