Phaylon::Class::Cloner - Experimental Customizable Cloning Device
use Phaylon::Class::Cloner; # that's what I needed my $cloner = Phaylon::Class::Cloner->new ({ CODE => sub { my ( $self, $coderef ) = @_; return $coderef; }, }); # cloning something my $cloned = $cloner->clone( $structure );
I had problems with cloning of structures that contain coderefs. I didn't need to clone coderefs, just array and hash references. This module enables one to define custom specific and default cloning functionalities.
Creates a new cloning object. Here's a quick example to show what can be passed:
my $cloner = Phaylon::Class::Cloner->new ({ # if the module finds a coderef CODE => sub { ... }, # module ran into an object MyClass => sub { my ( $self, $object ) = @_; return $object->some_cloning_mechanism; }, # what to do for non-refs. default is just to # return the value '' => sub { ... }, # if nothing's found for this type. preset to use # Storage::dclone() ':default' => sub { ... }, });
Dispatcher for cloning functionality.
Preset default cloning. Uses Storage's dclone
dclone
Cloning for non-reference scalars. Defaults to return the value.
Default for hash references. Clones first level with redispatching values to clone.
clone
Same as _clone_HASH just for arrays.
_clone_HASH
Carp, Storable
Storable
Due to the specific and experimental nature of this module, it's trying not to waste namespaces and therefore lies under Phaylon::.
Phaylon::
This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.
Copyright (c) 2005: Robert Sedlacek phaylon@dunkelheit.at
phaylon@dunkelheit.at
To install Phaylon::Class::Cloner, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Phaylon::Class::Cloner
CPAN shell
perl -MCPAN -e shell install Phaylon::Class::Cloner
For more information on module installation, please visit the detailed CPAN module installation guide.