Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / i486-linux-gnu-thread-multi / Clone.pm
1 # $Id: Clone.pm,v 0.31 2009/01/20 04:54:37 ray Exp $
2 package Clone;
3
4 use strict;
5 use Carp;
6 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);
7
8 require Exporter;
9 require DynaLoader;
10 require AutoLoader;
11
12 @ISA = qw(Exporter DynaLoader);
13 # Items to export into callers namespace by default. Note: do not export
14 # names by default without a very good reason. Use EXPORT_OK instead.
15 # Do not simply export all your public functions/methods/constants.
16 @EXPORT = qw();
17 @EXPORT_OK = qw( clone );
18
19 $VERSION = '0.31';
20
21 bootstrap Clone $VERSION;
22
23 # Preloaded methods go here.
24
25 # Autoload methods go after =cut, and are processed by the autosplit program.
26
27 1;
28 __END__
29
30 =head1 NAME
31
32 Clone - recursively copy Perl datatypes
33
34 =head1 SYNOPSIS
35
36   use Clone;
37   
38   push @Foo::ISA, 'Clone';
39
40   $a = new Foo;
41   $b = $a->clone();
42   
43   # or
44
45   use Clone qw(clone);
46   
47   $a = { 'foo' => 'bar', 'move' => 'zig' };
48   $b = [ 'alpha', 'beta', 'gamma', 'vlissides' ];
49   $c = new Foo();
50
51   $d = clone($a);
52   $e = clone($b);
53   $f = clone($c);
54
55 =head1 DESCRIPTION
56
57 This module provides a clone() method which makes recursive
58 copies of nested hash, array, scalar and reference types, 
59 including tied variables and objects.
60
61
62 clone() takes a scalar argument and an optional parameter that 
63 can be used to limit the depth of the copy. To duplicate lists,
64 arrays or hashes, pass them in by reference. e.g.
65     
66     my $copy = clone (\@array);
67
68     # or
69
70     my %copy = %{ clone (\%hash) };
71     
72
73 For a slower, but more flexible solution see Storable's dclone().
74
75 =head1 AUTHOR
76
77 Ray Finch, rdf@cpan.org
78
79 Copyright 2001 Ray Finch.
80
81 This module is free software; you can redistribute it and/or
82 modify it under the same terms as Perl itself.
83
84 =head1 SEE ALSO
85
86 Storable(3).
87
88 =cut