Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Clone::Choose(3)      User Contributed Perl Documentation     Clone::Choose(3)

NAME
       Clone::Choose - Choose appropriate clone	utility

SYNOPSIS
	 use Clone::Choose;

	 my $data = {
	     value => 42,
	     href  => {
		 set   => [ 'foo', 'bar' ],
		 value => 'baz',
	     },
	 };

	 my $cloned_data = clone $data;

	 # it's	also possible to use Clone::Choose and pass a clone preference
	 use Clone::Choose qw(:Storable);

DESCRIPTION
       "Clone::Choose" checks several different	modules	which provides a
       "clone()" function and selects an appropriate one. The default
       preference is

	 Clone
	 Storable
	 Clone::PP

       This list might evolve in future. Please	see "EXPORTS" how to pick a
       particular one.

EXPORTS
       "Clone::Choose" exports "clone()" by default.

       One can explicitly import "clone" by using

	 use Clone::Choose qw(clone);

       or pick a particular "clone" implementation

	 use Clone::Choose qw(:Storable	clone);

       The exported implementation is resolved dynamically, which means	that
       any using module	can either rely	on the default backend preference or
       choose a	particular one.

       It is also possible to select a particular "clone" backend by setting
       the environment variable	CLONE_CHOOSE_PREFERRED_BACKEND to your
       preferred backend.

       This also means,	an already chosen import can't be modified like

	 use Clone::Choose qw(clone :Storable);

       When one	seriously needs	different clone	implementations, our
       recommended way to use them would be:

	 use Clone::Choose (); # do not	import
	 my ($xs_clone,	$st_clone);
	 { local @Clone::Choose::BACKENDS = (Clone => "clone");	$xs_clone = Clone::Choose->can("clone"); }
	 { local @Clone::Choose::BACKENDS = (Storable => "dclone"); $st_clone =	Clone::Choose->can("clone"); }

       Don't misinterpret recommended -	modifying @Clone::Choose::BACKENDS has
       a lot of	pitfalls and is	unreliable beside such small examples. Do not
       hesitate	open a request with an appropriate proposal for	choosing
       implementations dynamically.

       The use of @Clone::Choose::BACKENDS is discouraged and will be
       deprecated as soon as anyone provides a better idea.

PACKAGE	METHODS
   backend
       "backend" tells the caller about	the dynamic chosen backend:

	 use Clone::Choose;
	 say Clone::Choose->backend; # Clone

       This method currently exists for	debug purposes only.

   get_backends
       "get_backends" returns a	list of	the currently supported	backends.

AUTHOR
	 Jens Rehsack <rehsack at cpan dot org>
	 Stefan	Hermes <hermes at cpan dot org>

BUGS
       Please report any bugs or feature requests to "bug-Clone-Choose at
       rt.cpan.org", or	through	the web	interface at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Clone-Choose>.  I will
       be notified, and	then you'll automatically be notified of progress on
       your bug	as I make changes.

SUPPORT
       You can find documentation for this module with the perldoc command.

	 perldoc Clone::Choose

       You can also look for information at:

       o   RT: CPAN's request tracker

	   <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Clone-Choose>

       o   AnnoCPAN: Annotated CPAN documentation

	   <http://annocpan.org/dist/Clone-Choose>

       o   CPAN	Ratings

	   <http://cpanratings.perl.org/d/Clone-Choose>

       o   Search CPAN

	   <http://search.cpan.org/dist/Clone-Choose/>

LICENSE	AND COPYRIGHT
	 Copyright 2017	Jens Rehsack
	 Copyright 2017	Stefan Hermes

       This program is free software; you can redistribute it and/or modify it
       under the terms of either: the GNU General Public License as published
       by the Free Software Foundation;	or the Artistic	License.

       See http://dev.perl.org/licenses/ for more information.

SEE ALSO
       Clone, Clone::PP, Storable

perl v5.32.1			  2018-04-09		      Clone::Choose(3)

NAME | SYNOPSIS | DESCRIPTION | EXPORTS | PACKAGE METHODS | AUTHOR | BUGS | SUPPORT | LICENSE AND COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Clone::Choose&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help