我想检查两个引用是否指向同一对象。似乎我可以简单地使用
if ($ref1 == $ref2) {
# cheap numeric compare of references
print "refs 1 and 2 refer to the same thing\n";
}
如 perlref
所述,但我模糊地记得看到过使用某个函数来实现同样的目的。有没有任何理由我不应该使用简单的数字相等性测试?
请注意,我只想知道引用是否指向完全相同的对象。我不寻找比较对象内容的方法。
0+
)重载或==
重载(可能是通过<=>
)的类,那么你实际上可能想要它被拦截的自定义相等性。没有提到这些考虑因素就发表一般性声明似乎过于简单化。话虽如此,我想不出有多少情况下模块函数所采取的代码路径会是你试图挤出每一丝性能的关键路径。但如果是这样,当然你会想使用正常的==
。 - tchrist