our @ISA = "Critter";


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

为什么是our @ISA

最佳答案

为了扩展Mat的评论,在perldocs中广泛记录了此类内容。

关于@ISAhere's what it says


一个类就是一个包

...

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

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

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


our@ISA齐头并进,因为预计@ISA是程序包变量。

关于perl - Perl中的@ISA数组是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14181570/

10-11 19:45