15
our @ISA = "Critter";

我会在什么情况下使用@ISA

为什么our @ISA

4

2 回答 2

31

为了扩展 Mat 的评论,类似这样的内容在perldocs.

关于@ISA这就是它所说的

一个类只是一个包

...

每个包都包含一个特殊的数组,称为@ISA. 该@ISA数组包含该类的父类的列表(如果有)。当 Perl 进行方法解析时会检查这个数组,我们稍后会介绍。

可以手动设置@ISA,您可能会在较旧的 Perl 代码中看到这一点。很多旧代码也使用base编译指示。对于新代码,我们建议您使用parentpragma 来声明您的父母。这个 pragma 将负责设置@ISA。它还将加载父类并确保包不会从自身继承。

无论父类如何设置,包的@ISA变量将包含这些父类的列表。这只是一个标量列表,每个标量都是对应于包名称的字符串。

our@ISA齐头并进,因为@ISA预计将是一个包变量。

于 2013-01-06T11:35:31.620 回答
8

@ISA 代表'is a',表示数组包含父母的包

于 2013-07-22T02:17:02.230 回答