Source: libclone-pp-perl Maintainer: Debian Perl Group Uploaders: Krzysztof Krzyżaniak (eloy) , Axel Beckert Section: perl Priority: optional Build-Depends: debhelper (>= 9~) Build-Depends-Indep: perl Standards-Version: 4.1.0 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libclone-pp-perl.git Vcs-Git: https://anonscm.debian.org/git/pkg-perl/packages/libclone-pp-perl.git Homepage: https://metacpan.org/release/Clone-PP Testsuite: autopkgtest-pkg-perl Package: libclone-pp-perl Architecture: all Depends: ${perl:Depends}, ${misc:Depends} Description: module to recursively copy Perl datatypes Clone::PP provides a general-purpose clone function to make deep copies of Perl data structures. It calls itself recursively to copy nested hash, array, scalar and reference types, including tied variables and objects. . The clone() function takes a scalar argument to copy. To duplicate arrays or hashes, pass them in by reference: . my $copy = clone(\@array); my @copy = @{ clone(\@array) }; my $copy = clone(\%hash); my %copy = %{ clone(\%hash) }; . The clone() function also accepts an optional second parameter that can be used to limit the depth of the copy. If you pass a limit of 0, clone will return the same value you supplied; for a limit of 1, a shallow copy is constructed; for a limit of 2, two layers of copying are done, and so on. . This is a pure-perl implementation. For a faster XS-/C-based implementation see the libclone-perl package.