假设我有以下包层次结构:
A--> B --> C --> D
这意味着A
是基类,B
依次继承C
my $co = D->new();
继承自B等等。
另外,假设我有以下代码行:
UNIVERSAL
有没有办法检查(某些co
方法?)如果对象A
是X
的后代? (或者一般来说,测试对象P
是否是包{{1}}的后代)
答案 0 :(得分:5)
请参阅UNIVERSAL。
if ($D->isa('A')) {print "do something fancy"}
或
if ($D->can('method_defined_in_A')) {print "can do that";}
答案 1 :(得分:0)
我相信你可以使用
$co->isa($package_name);
它是一个所有perl祝福引用的UNIVERSAL方法。 http://perldoc.perl.org/UNIVERSAL.html