加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

我应该如何比较Perl参考?

发布时间:2020-12-15 21:21:52 所属栏目:大数据 来源:网络整理
导读:我想检查两个引用是否指向同一个对象。看来我可以简单的使用 if ($ref1 == $ref2) { # cheap numeric compare of references print "refs 1 and 2 refer to the same thingn";} 如 perlref 年所述,但我模糊地记得看到使用某些功能是为了相同的目的。有什么
我想检查两个引用是否指向同一个对象。看来我可以简单的使用
if ($ref1 == $ref2) { 
 # cheap numeric compare of references
 print "refs 1 and 2 refer to the same thingn";
}

perlref年所述,但我模糊地记得看到使用某些功能是为了相同的目的。有什么理由我不应该使用简单的数字平等检验吗?

注意我只想知道引用是否指向完全相同的对象。我不寻找一种方法来比较对象的内容。

解决方法

默认情况下,参考号码将其编号到其地址。这些引用地址对于每个引用是唯一的,因此它通常可以用于相等检查。

但是,在您显示的代码段中,您首先必须确保$ ref1和$ ref2都是实际引用的。否则,由于包含引用地址的常规标量,您可能会收到不正确的结果。

此外,没有什么可以保证对其地址进行numify的引用。例如,对象可以使用重载来影响他们在不同上下文中返回的值。

比直接比较数字相等的引用更为坚实的方法是使用由Scalar::Util提供的refaddr函数,确保双方实际上都是引用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读