Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2084584
  • 博文数量: 414
  • 博客积分: 10312
  • 博客等级: 上将
  • 技术积分: 4921
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-31 01:49
文章分类

全部博文(414)

文章存档

2011年(1)

2010年(29)

2009年(82)

2008年(301)

2007年(1)

分类:

2008-06-20 12:19:58

use base 是面向对象编程时,用来描述“基类”的,其实说白了,

CODE:
use base somemodule;

就相当于以下两句的结合:

CODE:
BEGIN{
    use somemodule ();
    push @ISA, qw(somemodule);
}

也可以同时 use base 两个或者两个以上的模块,例如:

CODE:
use base qw(Foo Bar);

就相当于:

CODE:
BEGIN {
    use Foo ();
    use Bar ();
    push @ISA, qw(Foo Bar);
}

至于 @ISA 是个什么样的数组,这完全不关 use base 的事,
只不过,@ISA 是一个比较特殊的数组,它的含义可以参见大骆驼中的描述。

顺便说一下,

CODE:
use Foo ();



CODE:
use Foo;

是不同的,
后者会自动调用 Foo 包里的 import 函数,而前者不会。

CODE:
use base somemodule;



CODE:
use somemodule;

多了并且只多了一句

CODE:
push @ISA, qw(somemodule);



阅读(1186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~