相关疑难解决方法(0)

为什么我不应该使用UNIVERSAL :: isa?

根据这个

http://perldoc.perl.org/UNIVERSAL.html

我不应该使用UNIVERSAL :: isa()而应该使用$ obj-> isa()或CLASS-> isa().

这意味着要首先找出某些东西是引用,然后引用这个类,我必须这样做

eval { $poss->isa("Class") }
Run Code Online (Sandbox Code Playgroud)

并检查$ @和所有那些gumph,否则

use Scalar::Util 'blessed';
blessed $ref && $ref->isa($class);
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么?UNIVERSAL :: isa有什么问题?这对于以下事情来说更清洁:

my $self = shift if UNIVERSAL::isa($_[0], __PACKAGE__)
Run Code Online (Sandbox Code Playgroud)

要查看是否正在对象上调用此函数.还有一个很好的清洁替代方案,不会因为&符和潜在的长线而变得麻烦吗?

perl

17
推荐指数
4
解决办法
6287
查看次数

标签 统计

perl ×1