对象、模块及包
October 28, 2013 @ 01:47 PM
包基础
- 包是方法的集合
- 具有自己的命名空间
- 包方法能被导出或直接调用
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";