我如何获得祝福参考的类型?(ARRAY | HASH |标量)

niX*_*Xar 4 perl

我通过了参考,我想知道它的类型.为此,"ref"适用于未经处理的引用,但是在有福的引用上,它返回它被祝福的包名.

     $a=[];
     print ref $a;
Run Code Online (Sandbox Code Playgroud)

ARRAY

     bless $a, 'mytype';
     print ref $a;
Run Code Online (Sandbox Code Playgroud)

我的风格

我怎样才能得到这个类型?

jro*_*way 15

use Scalar::Util 'reftype';
print reftype bless {}; # HASH
Run Code Online (Sandbox Code Playgroud)

  • 迂腐地使用Scalar :: Util 1.01'reftype'; 由于reftype是在不到10年前加入的,一些可怜的灵魂可能缺乏它. (5认同)

yst*_*sth 7

你可以使用Scalar :: Util :: reftype,但一般来说它不是你需要做的事情.通常人们问这个问题表明他们正在以不太理想的方式做其他事情.那么,为什么你认为你需要知道?

  • 这是真的.一旦你祝福了什么,就不应该直接访问底层数据.(无论如何,无论如何,如果你是Data :: Dumper或Data :: Visitor之类的东西,它仍然很有用.) (2认同)