gpt4 book ai didi

perl - 与 reftype { } 有什么关系?

转载 作者:行者123 更新时间:2023-12-04 19:21:41 25 4
gpt4 key购买 nike

最近看到一些代码提醒我问这个问题。最近,我看到了很多这样的:

use Scalar::Util 'reftype';

if ( reftype $some_ref eq reftype { } ) { ... }

打电话的目的是什么 reftype在匿名 hashref 上?为什么不直接说 eq 'HASH' ?

最佳答案

您现在可以将其与“HASH”进行比较,因为这就是现在返回的内容。

但它可能并不总是。

一个很好的例子是他们对编译后的正则表达式所做的更改。在较旧的 Perls 中,reftype 是 SCALAR。但是,从 5.12(我相信)开始,它现在是它自己的类型 REGEXP。例子:
perl -MScalar::Util=reftype -e "print reftype qr//"在 5.8 上给出 SCALAR ,但同样在 5.12 上给出 REGEXP .

您可以从 this question 看到另一个应用程序我之前问过,除了那里使用了 ref而不是 reftype .不过原理是一样的。

简单地说,通过将其与 reftype {} 进行比较,他们保证它现在和将来都不会(我认为这是杀手级功能)将另一个字符串硬编码到您的程序中。

关于perl - 与 reftype { } 有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com