File | /usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Clone.pm |
Statements Executed | 18 |
Statement Execution Time | 170µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
19 | 1 | 2 | 207µs | 207µs | clone (xsub) | Clone::
1 | 1 | 2 | 52µs | 52µs | bootstrap (xsub) | Clone::
1 | 1 | 1 | 16µs | 21µs | BEGIN@4 | Clone::
1 | 1 | 1 | 9µs | 54µs | BEGIN@5 | Clone::
1 | 1 | 1 | 8µs | 77µs | BEGIN@6 | Clone::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # $Id: Clone.pm,v 0.31 2009/01/20 04:54:37 ray Exp $ | ||||
2 | package Clone; | ||||
3 | |||||
4 | 3 | 23µs | 2 | 26µs | # spent 21µs (16+5) within Clone::BEGIN@4 which was called
# once (16µs+5µs) by SimpleDB::Class::SQL::BEGIN@21 at line 4 # spent 21µs making 1 call to Clone::BEGIN@4
# spent 5µs making 1 call to strict::import |
5 | 3 | 36µs | 2 | 99µs | # spent 54µs (9+45) within Clone::BEGIN@5 which was called
# once (9µs+45µs) by SimpleDB::Class::SQL::BEGIN@21 at line 5 # spent 54µs making 1 call to Clone::BEGIN@5
# spent 45µs making 1 call to Exporter::import |
6 | 3 | 76µs | 2 | 146µs | # spent 77µs (8+69) within Clone::BEGIN@6 which was called
# once (8µs+69µs) by SimpleDB::Class::SQL::BEGIN@21 at line 6 # spent 77µs making 1 call to Clone::BEGIN@6
# spent 69µs making 1 call to vars::import |
7 | |||||
8 | 1 | 700ns | require Exporter; | ||
9 | 1 | 500ns | require DynaLoader; | ||
10 | 1 | 400ns | require AutoLoader; | ||
11 | |||||
12 | 1 | 12µs | @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 | 200ns | @EXPORT = qw(); | ||
17 | 1 | 400ns | @EXPORT_OK = qw( clone ); | ||
18 | |||||
19 | 1 | 300ns | $VERSION = '0.31'; | ||
20 | |||||
21 | 1 | 6µs | 1 | 386µs | bootstrap Clone $VERSION; # spent 386µs 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 | 14µs | 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 52µs within Clone::bootstrap which was called
# once (52µs+0s) by DynaLoader::bootstrap at line 227 of DynaLoader.pm | |||||
# spent 207µs within Clone::clone which was called 19 times, avg 11µs/call:
# 19 times (207µs+0s) by SimpleDB::Class::SQL::to_sql at line 369 of ../lib/SimpleDB/Class/SQL.pm, avg 11µs/call |