在Perl中制作数据结构的深层副本的最佳方法是什么?

给定一个数据结构(如散列哈希),什么是干净/推荐的方式来做一个深层复制立即使用? 假设合理的情况下,数据不是特别大,没有复杂的循环存在,可读性/可维护性等。 比速度更重要。

我知道我可以使用Storable , Clone ,Clone :: More, Clone :: Fast , Data :: Dumper等。目前的最佳做法是什么?

CloneStorable::dclone ,但后者支持更多的数据types。

Clone::FastClone::More是相当相当的,如果内存服务我的权利,但function甚至比克隆less,而Scalar::Util::Clone支持更less,但二垒是其中最快的一些结构。

关于可读性,这些应该都是一样的,它们几乎是可以互换的。

如果您没有具体的性能需求,我只能使用Stored的dclone。

我不会使用Data::Dumper ,因为它非常笨重和迂回。 这可能会很慢。

值得一提的是,如果您想要自定义克隆,那么Data::Visitor提供挂钩function,而相当完整的function则是默认行为。

我的印象是, Storable::dclone()是有点规范的。

克隆可能是你想要的。 至less,这就是我见过的所有代码所使用的。