根据这个
http://perldoc.perl.org/UNIVERSAL.html
我不应该使用UNIVERSAL::isa(),而应该使用$obj->isa()或CLASS->isa()。
这意味着首先要找出某个东西是否是引用,然后是对这个类的引用,我必须这样做
eval { $poss->isa("Class") }
检查一下$@和所有的口香糖,否则
use Scalar::Util 'blessed';
blessed $ref && $ref->isa($class);
我的问题是为什么?UNIVERSAL::isa这样调用有什么问题吗?对于像这样的东西,它要干净得多:
my $self = shift if UNIVERSAL::isa($_[0], __PACKAGE__)
查看是否正在对象上调用此函数。有没有一个很好的干净的替代方案,不会因为和号和潜在的长行而变得繁琐?
https://stackoverflow.com/questions/204316
复制相似问题