our @ISA = "Critter";
我会在什么情况下使用@ISA?
为什么our @ISA?
为了扩展 Mat 的评论,类似这样的内容在perldocs.
关于@ISA,这就是它所说的:
一个类只是一个包
...
每个包都包含一个特殊的数组,称为
@ISA. 该@ISA数组包含该类的父类的列表(如果有)。当 Perl 进行方法解析时会检查这个数组,我们稍后会介绍。可以手动设置
@ISA,您可能会在较旧的 Perl 代码中看到这一点。很多旧代码也使用base编译指示。对于新代码,我们建议您使用parentpragma 来声明您的父母。这个 pragma 将负责设置@ISA。它还将加载父类并确保包不会从自身继承。无论父类如何设置,包的
@ISA变量将包含这些父类的列表。这只是一个标量列表,每个标量都是对应于包名称的字符串。
our并@ISA齐头并进,因为@ISA预计将是一个包变量。
@ISA 代表'is a',表示数组包含父母的包