对象、模块及包
最后更新于:2022-04-01 21:07:36
## 包基础
* 包是方法的集合
* 具有自己的命名空间
* 包方法能被导出或直接调用
~~~
Foo::bar()
Foo->bar()
bar() (如果 Foo 已导出它)
~~~
## 模块基础
* 模块是包含一个或多个包的文件
* 多数人交替使用模块和包
## 对象基础
* 对象是被 bless 的哈希引用(不必是哈希引用,但它最常见)
* bless 将单个类赋给对象
* 对象可被重新 bless
### 1;
* 模块必须以真值结束
* 不必是 1
* 包没有相同的限制
## @ISA
Perl 的对象继承方法使用 `@ISA` 来决定模块继承自什么类。多年前,通过直接 修改`@ISA` 声明继承。现在,多数程序使用 `base` 编译指令声明继承。
下列代码是等效的:
~~~
package Foo;
require Wango;
@ISA = ( "Wango" );
package Foo;
use base "Wango";
~~~
';