我有一些Perl对象,这些对象是不久前用Moose构建的, 但是,有了保佑,继承是使用“父母”来实现的。附注
现在我想知道是否有办法检查某个班级是否使用过“父母”。或不。
e.g。如果我有两个班级
package Animal;
sub new {
my $class = shift;
return bless {}, $class;
}
1;
和
package Cat;
use parent 'Animal';
sub new {
my $class = shift;
return bless {}, $class;
}
1;
我可以做一些检查,以确定“猫”和“猫”。类 有一个父母(不关心哪个,但不是自己),而动物没有,给出一个$ foo哪一个?
答案 0 :(得分:1)
我无法想象为什么你想知道这一点,但可以使用以下内容:
use mro;
my $inherits = @{ mro::get_linear_isa($class) } > 1;
或
my $isa = do { no strict 'refs'; \@{ $class . '::ISA' } };
my $inherits = @$isa;
注意:
use parent
或其他方法)。