给定一个数据结构(例如散列哈希),什么是干净/推荐的方式来制作深层副本以供立即使用?假设合理的情况,数据不是特别大,没有复杂的循环,可读性/可维护性等.不惜一切代价比速度更重要.
我知道我可以使用Storable,Clone,Clone :: More,Clone :: Fast,Data :: Dumper等.目前的最佳做法是什么?
小智 18
Clone比它快得多Storable::dclone,但后者支持更多的数据类型.
Clone::Fast并且Clone::More是几乎等价的,如果没记错的话,但更小的特征,甚至比克隆完整,Scalar::Util::Clone更不支持,但IIRC是一些结构最快的这一切.
关于可读性,这些应该都是相同的,它们实际上是可以互换的.
如果您没有特定的性能需求,我会使用Storable的dclone.
我不会Data::Dumper因为它如此繁琐和迂回而使用它.它可能会非常缓慢.
对于它的价值,如果您想要可定制的克隆,那么Data::Visitor提供挂钩功能和相当完整的功能,完整的深度克隆是默认行为.
| 归档时间: |
|
| 查看次数: |
11864 次 |
| 最近记录: |