Clone::Any - Select an available recursive-copy function
use Clone::Any qw(clone); $a = { 'foo' => 'bar', 'move' => 'zig' }; $b = [ 'alpha', 'beta', 'gamma', 'vlissides' ]; $c = new Foo(); $d = clone($a); $e = clone($b); $f = clone($c);
This module checks for several different modules which can provide a clone() function to make deep copies of Perl data structures.
The clone function makes recursive copies of nested hash, array, scalar and reference types, including tied variables and objects.
The clone() function takes a scalar argument to copy. To duplicate lists, arrays or hashes, pass them in by reference. e.g.
my $copy = clone(\@array); my @copy = @{ clone(\@array) }; my $copy = clone(\%hash); my %copy = %{ clone(\%hash) };
Depending on which modules are available, this may load Clone, Clone::PP, Util, Storable, or Class::MakeMethods::Utility::Ref. If none of those modules are available, it will croak.
croak
For the various implementations, see Clone, Clone::PP, Storable, Util, and Class::MakeMethods::Utility::Ref.
See Devel::UseAnyFunc for the underlying module loader and exporter functionality.
Developed by Matthew Simon Cavalletto at Evolution Softworks. More free Perl software is available at www.evoscript.org.
www.evoscript.org
You may contact the author directly at evo@cpan.org or simonm@cavalletto.org.
evo@cpan.org
simonm@cavalletto.org
To report bugs via the CPAN web tracking system, go to http://rt.cpan.org/NoAuth/Bugs.html?Dist=Clone-Any or send mail to Dist=Clone-Any#rt.cpan.org, replacing # with @.
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Clone-Any
Dist=Clone-Any#rt.cpan.org
#
@
Copyright 2003 Matthew Simon Cavalletto.
Orignally inspired by Clone by Ray Finch with contributions from chocolateboy. Portions Copyright 2001 Ray Finch. Portions Copyright 2001 chocolateboy.
You may use, modify, and distribute this software under the same terms as Perl.
To install Clone::Any, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Clone::Any
CPAN shell
perl -MCPAN -e shell install Clone::Any
For more information on module installation, please visit the detailed CPAN module installation guide.