Perl中的@ISA数组是什么?

时间:2013-01-06 11:18:24

标签: perl

our @ISA = "Critter";

我会在哪种情况下使用@ISA

以及为什么our @ISA?。

2 个答案:

答案 0 :(得分:29)

为了扩展Mat的评论,perldocs中广泛记录了这样的内容。

关于@ISAhere's what it says

  

A类只是一个包

     

...

     

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

     

可以手动设置@ISA,您可能会在较旧版本中看到此内容   Perl代码。许多旧代码也使用base编译指示。对于新代码,   我们建议您使用parent编译指示来声明您的父母。   该pragma将负责设置@ISA。它也会加载   父类,并确保包不继承   本身。

     

但是设置了父类,包的@ISA变量将会   包含这些父母的列表。这只是一个标量列表,   每个都是一个与包名相对应的字符串。

our@ISA齐头并进,因为@ISA应该是一个包变量。

答案 1 :(得分:7)

@ISA代表'是',这意味着数组包含父代的包