Source: libclone-pp-perl Maintainer: Debian Perl Group Uploaders: Axel Beckert Section: perl Testsuite: autopkgtest-pkg-perl Priority: optional Build-Depends: debhelper-compat (= 13) Build-Depends-Indep: perl Standards-Version: 4.5.0 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libclone-pp-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libclone-pp-perl.git Homepage: https://metacpan.org/release/Clone-PP Rules-Requires-Root: no Package: libclone-pp-perl Architecture: all Depends: ${misc:Depends}, ${perl:Depends} Multi-Arch: foreign 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.