有没有办法判断哈希引用是否指的是符号表?
也就是说,该功能怎么可能
sub foo {
my ($hashref) = @_;
...
}
Run Code Online (Sandbox Code Playgroud)
知道它是否被调用为
foo( \%main:: )
Run Code Online (Sandbox Code Playgroud)
而不是
foo( \%main )
Run Code Online (Sandbox Code Playgroud)
?
应用程序是一个有时tie是哈希变量的函数,但我想避免尝试绑定一个符号表.
看起来这可以通过C API来完成HvNAME.以下是来自perlapi:
HvNAME
返回存储的包名称,如果存储不是存储,则返回NULL.见SvSTASH,CvSTASH.
- char*HvNAME(HV*藏匿处)