File | /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Clone.pm | Statements Executed | 18 | Total Time | 0.000229 seconds |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine | |
---|---|---|---|---|---|---|
2 | 1 | 2 | 7.1e-5 | 7.1e-5 | Clone:: | bootstrap (xsub) |
2 | 1 | 2 | 3.7e-5 | 3.7e-5 | Clone:: | clone (xsub) |
0 | 0 | 0 | 0 | 0 | Clone:: | BEGIN |
Line | Stmts. | Exclusive Time | Avg. | Code |
---|---|---|---|---|
1 | # $Id: Clone.pm,v 0.28 2007-10-15 04:52:42 ray Exp $ | |||
2 | package Clone; | |||
3 | ||||
4 | 3 | 3.7e-5 | 1.2e-5 | use strict; # spent 19µs making 1 call to strict::import |
5 | 3 | 3.7e-5 | 1.2e-5 | use Carp; # spent 65µs making 1 call to Exporter::import |
6 | 3 | 0.00010 | 3.4e-5 | use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); # spent 93µs making 1 call to vars::import |
7 | ||||
8 | 1 | 1.0e-6 | 1.0e-6 | require Exporter; |
9 | 1 | 1.0e-6 | 1.0e-6 | require DynaLoader; |
10 | 1 | 1.0e-6 | 1.0e-6 | require AutoLoader; |
11 | ||||
12 | 1 | 2.1e-5 | 2.1e-5 | @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 | 1 | 1.0e-6 | 1.0e-6 | @EXPORT = qw(); |
17 | 1 | 1.0e-6 | 1.0e-6 | @EXPORT_OK = qw( clone ); |
18 | ||||
19 | 1 | 1.0e-6 | 1.0e-6 | $VERSION = '0.28'; |
20 | ||||
21 | 1 | 1.7e-5 | 1.7e-5 | bootstrap Clone $VERSION; # spent 2.24ms making 1 call to DynaLoader::bootstrap |
22 | ||||
23 | # Preloaded methods go here. | |||
24 | ||||
25 | # Autoload methods go after =cut, and are processed by the autosplit program. | |||
26 | ||||
27 | 1 | 9.0e-6 | 9.0e-6 | 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 | |||
# spent 71µs within Clone::bootstrap which was called
# once (71µs+0) by DynaLoader::bootstrap at line 226 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/DynaLoader.pm | ||||
# spent 37µs within Clone::clone which was called
# once (37µs+0) by WISE::Pars::new at line 43 of /wise/base/deliv/dev/lib/perl/WISE/Pars.pm |