use Tie::RefHash; { tie my %refhash, 'Tie::RefHash'; sub canonicalize_array { my $ref = shift; return $ref if exists $refhash{$ref}; # Otherwise canonicalize the array. $refhash{$ref}++; $ref; } }