40

データ構造 (ハッシュのハッシュなど) が与えられた場合、すぐに使用できるようにディープ コピーを作成するためのクリーンで推奨される方法は何ですか? データが特に大きくなく、複雑なサイクルが存在せず、可読性/保守性などの合理的なケースを想定します。何としても速度よりも重要です。

StorableClone、 Clone::More、Clone::FastData:: Dumper などを使用できることはわかっています。現在のベスト プラクティスは何ですか?

4

5 に答える 5

18

Cloneは よりもはるかに高速ですStorable::dcloneが、後者はより多くのデータ型をサポートしています。

Clone::Fastメモリが正しく機能する場合はほぼ同等ですが、Clone::Moreクローンよりも完全な機能は少なく、Scalar::Util::Cloneサポートはさらに少なくなりますが、一部の構造ではIIRCが最も高速です。

読みやすさに関しては、これらはすべて同じように機能するはずであり、実質的に交換可能です。

特定のパフォーマンスが必要ない場合は、Storable の dclone を使用します。

Data::Dumper面倒で回りくどいので、私はこれを使用しません。それもおそらく非常に遅くなるでしょう。

価値があるのは、カスタマイズ可能なクローン作成が必要な場合Data::Visitorは、フック機能を提供し、完全な機能を備えた完全なディープ クローン作成がデフォルトの動作であることです。

于 2008-12-24T03:54:24.230 に答える
16

私の印象は、それStorable::dclone()はやや正統的だということです。

于 2008-12-23T04:47:21.690 に答える
7

クローンはおそらくあなたがそのために欲しいものです。少なくとも、それは私が見たすべてのコードが使用しているものです。

于 2008-12-23T06:08:03.417 に答える