我想檢查兩個引用是否指向同一個對象。看來我可以簡單地使用我應該如何比較Perl引用?
if ($ref1 == $ref2) {
# cheap numeric compare of references
print "refs 1 and 2 refer to the same thing\n";
}
在perlref
提及,但我依稀記得看到了同樣的目的而使用的一些功能。我有什麼理由不應該使用簡單的數字相等性測試?
注意我只想知道引用是否指向完全相同的對象。我不想找到一種方法來比較對象的內容。
如果您使用的對象有nummification('0 +')重載或'=='重載的類(可能通過'<=>'),那麼您可能實際上*希望*截獲它的自定義平等感。在沒有提及這些考慮因素的情況下作一攬子發言似乎過於容易。也就是說,我不能想到很多情況下,模塊函數所採用的代碼路徑將成爲您試圖扭曲性能的關鍵路徑。但是,如果它是,當然你會想要使用正常的'=='。 – tchrist 2010-10-31 17:09:51
同意。這就是爲什麼你的回答從我這裏得到讚揚提到這一點。有很多情況下,人們可能想要比較事物是否平等,並且應該爲每種情況分別考慮使用的平等類型。不過,這個問題很具體,因此得到了具體的答案。 – rafl 2010-10-31 17:14:41
它也值得一個具體的答案。這就是爲什麼你得到我的讚賞。 ☺ – tchrist 2010-10-31 22:30:12