home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / lib / perl5 / Clone.pm < prev    next >
Encoding:
Perl POD Document  |  2009-01-19  |  1.7 KB  |  89 lines

  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
  89.