| 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::clone (xsub) |
| 1 | 1 | 2 | 52µs | 52µs | Clone::bootstrap (xsub) |
| 1 | 1 | 1 | 16µs | 21µs | Clone::BEGIN@4 |
| 1 | 1 | 1 | 9µs | 54µs | Clone::BEGIN@5 |
| 1 | 1 | 1 | 8µs | 77µs | Clone::BEGIN@6 |
| 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 |