Perl的FreezeThaw中cmpStr和cmpStrHard有什么区别?

Perl的FreezeThaw中cmpStr和cmpStrHard有什么区别?,第1张

概述在 FreezeThaw中cmpStr和cmpStrHard有什么区别? 它们在FAQ How do I test whether two arrays or hashes are equal?中提到 文档非常模糊,源代码很难遵循,但FAQ中的示例提供了一些见解.在研究了所有这些之后,我想我会理解这些功能以及文档的含义. CmpStr比较两个数据结构的序列化表示.如果它们是等价的,则返回0.否则返 在 FreezeThaw中cmpStr和cmpStrHard有什么区别?

它们在FAQ How do I test whether two arrays or hashes are equal?中提到

解决方法 文档非常模糊,源代码很难遵循,但FAQ中的示例提供了一些见解.在研究了所有这些之后,我想我会理解这些功能以及文档的含义.

CmpStr比较两个数据结构的序列化表示.如果它们是等价的,则返回0.否则返回非零值. (从技术上讲,如果第一个数据结构小于第二个数据结构则返回-1,如果它更大则返回1,但“小于”和“大于”的概念对于哈希特别有用.)

CmpStrHard类似但更严格.仅当两个数据结构完全相同时,它才返回0.

等价和等式之间的区别在于用于构建复杂数据结构的引用.考虑以下:

my ($x,$y,$z);$x = [1];$y = [1];$z = $y;

$x和$y是等价的:它们都是对包含单个值“1”的数组的引用. $y和$z超过等价,它们是相等的:它们都是对同一个匿名数组的引用.如果你说

$y->[0] = 2;

然后$x和$y将不再相等,但$y和$z仍然相等.

我相信,当FreezeThaw文档说“被视为一个组”时,它说的是可能包含对相同对象的引用的数据结构. (如果是这样,冻结/解冻循环应该保留这些关系.)

总结

以上是内存溢出为你收集整理的Perl的FreezeThaw中cmpStr和cmpStrHard有什么区别?全部内容,希望文章能够帮你解决Perl的FreezeThaw中cmpStr和cmpStrHard有什么区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1247974.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存