By default Moose objects are cloned like this:
By extending this trait you can create custom cloning for certain attributes.
By creating clone methods for your objects (e.g. by composing MooseX::Compile) you can make them interact with this trait.
|NoClone||Specifies attributes that should be skipped entirely while cloning.|
clone %params Returns a clone of the object.
All attributes which do the MooseX::Clone::Meta::Attribute::Trait::Clone role will handle cloning of that attribute. All other fields are plainly copied over, just like in clone_object in Class::MOP::Class.
Attributes whose init_arg is in %params and who do the Clone trait will get that argument passed to the clone method (dereferenced). If the attribute does not self-clone then the param is used normally by clone_object in Class::MOP::Class, that is it will simply shadow the previous value, and does not have to be an array or hash reference.
Refactor to work in term of a metaclass trait so that meta->clone_object will still do the right thing.
clkao made the food required to write this module
XXXX XXXXX (Yuval Kogman) <email@example.com>
This software is copyright (c) 2008 by XXXX XXXXX (Yuval Kogman).
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
|perl v5.20.3||MOOSEX::CLONE (3)||2015-05-23|