1Clone(3)              User Contributed Perl Documentation             Clone(3)
2
3
4

NAME

6       Clone - recursively copy Perl datatypes
7

SYNOPSIS

9           use Clone 'clone';
10
11           my $data = {
12              set => [ 1 .. 50 ],
13              foo => {
14                  answer => 42,
15                  object => SomeObject->new,
16              },
17           };
18
19           my $cloned_data = clone($data);
20
21           $cloned_data->{foo}{answer} = 1;
22           print $cloned_data->{foo}{answer};  # '1'
23           print $data->{foo}{answer};         # '42'
24
25       You can also add it to your class:
26
27           package Foo;
28           use parent 'Clone';
29           sub new { bless {}, shift }
30
31           package main;
32
33           my $obj = Foo->new;
34           my $copy = $obj->clone;
35

DESCRIPTION

37       This module provides a "clone()" method which makes recursive copies of
38       nested hash, array, scalar and reference types, including tied
39       variables and objects.
40
41       "clone()" takes a scalar argument and duplicates it. To duplicate
42       lists, arrays or hashes, pass them in by reference, e.g.
43
44           my $copy = clone (\@array);
45
46           # or
47
48           my %copy = %{ clone (\%hash) };
49

SEE ALSO

51       Storable's "dclone()" is a flexible solution for cloning variables,
52       albeit slower for average-sized data structures. Simple and naive
53       benchmarks show that Clone is faster for data structures with 3 or
54       fewer levels, while "dclone()" can be faster for structures 4 or more
55       levels deep.
56
58       Copyright 2001-2019 Ray Finch. All Rights Reserved.
59
60       This module is free software; you can redistribute it and/or modify it
61       under the same terms as Perl itself.
62

AUTHOR

64       Ray Finch "<rdf@cpan.org>"
65
66       Breno G. de Oliveira "<garu@cpan.org>" and Florian Ragwitz
67       "<rafl@debian.org>" perform routine maintenance releases since 2012.
68
69
70
71perl v5.36.0                      2022-07-22                          Clone(3)
Impressum