info > Clone

Clone(3pm) - recursively copy Perl datatypes

📛 NAME

Clone - recursively copy Perl datatypes

🚀 Quick Reference

Use CaseCommandDescription
🚀 Basic usageuse Clone 'clone';Import the clone function
đŸ—‚ī¸ Clone a hashrefmy $copy = clone($data);Recursively copy a nested hash reference
📋 Clone an arrayrefmy $copy = clone(\@array);Recursively copy a nested array reference
🧩 Clone an objectmy $copy = $obj->clone;Clone via inheritance from Clone class
đŸ“Ļ Clone a hashmy %copy = %{ clone(\%hash) };Clone a hash and dereference

📝 SYNOPSIS

use Clone 'clone';

my $data = {
   set => [ 1 .. 50 ],
   foo => {
       answer => 42,
       object => SomeObject->new,
   },
};

my $cloned_data = clone($data);

$cloned_data->{foo}{answer} = 1;
print $cloned_data->{foo}{answer};  # '1'
print $data->{foo}{answer};         # '42'

You can also add it to your class:

package Foo;
use parent 'Clone';
sub new { bless {}, shift }

package main;

my $obj = Foo->new;
my $copy = $obj->clone;

📖 DESCRIPTION

This module provides a clone() method which makes recursive copies of nested hash, array, scalar and reference types, including tied variables and objects.

clone() takes a scalar argument and duplicates it. To duplicate lists, arrays or hashes, pass them in by reference, e.g.

my $copy = clone (\@array);

# or

my %copy = %{ clone (\%hash) };

👀 SEE ALSO

Storable's dclone() is a flexible solution for cloning variables, albeit slower for average-sized data structures. Simple and naive benchmarks show that Clone is faster for data structures with 3 or fewer levels, while dclone() can be faster for structures 4 or more levels deep.

ÂŠī¸ COPYRIGHT

Copyright 2001-2019 Ray Finch. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

👤 AUTHOR

Ray Finch <rdf AT cpan.org>

Breno G. de Oliveira <garu AT cpan.org> and Florian Ragwitz <rafl AT debian.org> perform routine maintenance releases since 2012.

perl v5.34.0 2022-02-06 Clone(3pm)

Clone
Clone(3pm) - recursively copy Perl datatypes 📛 NAME 🚀 Quick Reference 📝 SYNOPSIS 📖 DESCRIPTION 👀 SEE ALSO ÂŠī¸ COPYRIGHT 👤 AUTHOR

Generated by phpman v4.9.26-5-g7740029 Author: Che Dong Under GNU General Public License
2026-08-16 09:07 @2600:1f28:365:80b0:7cb9:fb:26c1:e368
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)
Valid XHTML 1.0 Transitional!Valid CSS!