---
name: "Class::MakeMethods::Utility::Ref"
section: "3pm"
platform: "linux"
package: "libclass-makemethods-perl"
version: "1.01-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::MakeMethods::Utility::Ref"
---

# Class::MakeMethods::Utility::Ref(3pm)

Deep copying and comparison

## NAME

Class::MakeMethods::Utility::Ref - Deep copying and comparison

## SYNOPSIS

```
  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 );
```

## DESCRIPTION

This module provides utility functions to copy and compare arbitrary references, including full traversal of nested data structures.

### REFERENCE

The following functions are provided:

### ref\_clone()

Make a recursive copy of a reference.

### ref\_compare()

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 ALSO

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 CPAN as of 2000-09-21) for a clone method with an XS implementation.

The Perl6 RFP #67 proposes including clone functionality in the core.

See Data::Compare (v0.01 on CPAN 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.
