我想检查 a$thing
是否是作为包祝福的对象(例如__PACKAGE__
)。一个想法是:
use Scalar::Util qw(blessed);
defined blessed $thing && blessed $thing eq __PACKAGE__
有没有更好和/或更优雅的方法来避免检查是否定义了返回值blessed
?
另一种方法是(blessed $thing or '') eq __PACKAGE__
,但我不确定一个包裹是否可以合法地为空。
此外,基于Perl Monks是UNIVERSAL::isa($thing, __PACKAGE__)
另一种方式,但这种方式允许更多的东西。