给定一个对象,我怎么能在perl中知道它的类?

com*_*fan 2 perl

我需要这个信息来决定调用哪个具有特定方法的类.

Eri*_*rom 8

您使用ref builtin来确定变量的引用类型或类:

my $obj = bless [] => 'Some::Class';

print ref($obj), "\n";  # 'Some::Class';
Run Code Online (Sandbox Code Playgroud)

可以使用Scalar::Util's reftype(始终返回容器类型)和blessed(始终返回类名)子例程找到更多详细信息.


Ash*_*ley 8

ref通常会正常工作,但blessedScalar :: Util可能是更好的选择.例如,它将返回undef未包含在包中的普通引用.