Deep copying and comparison
use Class::MakeMethods::Utility::Ref qw( ref_clone ref_compare ); $deep_copy = ref_clone( $original ); $positive_zero_or_negative = ref_compare( $item_a, $item_b );
This module provides utility functions to copy and compare arbitrary references, including full traversal of nested data structures.
The following functions are provided:
Make a recursive copy of a reference.
Attempt to recursively compare two references.
If they are not the same, try to be consistent about returning a positive or negative number so that it can be used for sorting. The sort order is kinda arbitrary.
See Class::MakeMethods for general information about this distribution.
See Ref for the original version of the clone and compare functions used above.
See Clone (v0.09 on \s-1CPAN\s0 as of 2000-09-21) for a clone method with an \s-1XS\s0 implementation.
The Perl6 \s-1RFP\s0 #67 proposes including clone functionality in the core.
See Data::Compare (v0.01 on \s-1CPAN\s0 as of 1999-04-24) for a Compare method which checks two references for similarity, but it does not provide positive/negative values for ordering purposes.