our @ISA = "Critter";
我会在哪种情况下使用@ISA
?
以及为什么our @ISA
?。
答案 0 :(得分:29)
为了扩展Mat的评论,perldocs
中广泛记录了这样的内容。
关于@ISA
,here's what it says:
A类只是一个包
...
每个包都包含一个名为
@ISA
的特殊数组。@ISA
数组 包含该类的父类的列表(如果有)。这个数组是 在Perl进行方法解析时进行检查,我们将在稍后介绍。可以手动设置
@ISA
,您可能会在较旧版本中看到此内容 Perl代码。许多旧代码也使用base
编译指示。对于新代码, 我们建议您使用parent
编译指示来声明您的父母。 该pragma将负责设置@ISA
。它也会加载 父类,并确保包不继承 本身。但是设置了父类,包的
@ISA
变量将会 包含这些父母的列表。这只是一个标量列表, 每个都是一个与包名相对应的字符串。
our
和@ISA
齐头并进,因为@ISA
应该是一个包变量。
答案 1 :(得分:7)
@ISA代表'是',这意味着数组包含父代的包