面向对象的Perl 1

类别:软件工程 点击:0 评论:0 推荐:

面向对象的 Perl

开篇

3.1 三条规则

第一,创建一个包

要用 perl 写一个类,首先要创建一个包。 Perl 中的包已经有了一些类的特性:

* 包可以集合有关系的一组代码

* 包有自己的命名空间

第二, perl 中类的方法就是 subroutine

如果有一个变量 $refHero 指向一个 hero 的类, hero 类有 fight, fly 等的方法,通过 -> 就可以访问这些方法。 $refHero->fly; $ refHero->fight ;

用 -> 访问方法符合 perl 的一贯用法:

$refHash->{key}; # 取得哈西的值

$refArray->[$index]; # 取得数组中的元素

$refSub->(@args); # 访问一个子程序

$refObj->method(@args); # 访问类的方法

Tipps: 如果你读 reference 不熟悉的话,是着用 XML::Simple 写个小程序,你一定有很深的了解。

方法可以如下的使用,但两者之间是有区别的:

$refHero->fly(„5km“);

或是

Hero::fly(„5km“);

前者传递给 fly 的参数实际上是 ($refHero, „5km“), 而后者就像是一个普通的 sub 一样,仅仅传递了 („5km“) 。

了解到这点下面的代码就好理解了

package Hero;

sub fly

{

my ($self, @args) = @_;

}

通过 $self 就可以访问自己命名空间里的东东了。因为 perl 里,参数的传递是 call by reference, 所以上面的这种写法还有一个好处就是不会把 sub 里把传递过来的参数改了(这常常是我们不想的)。

第三, 创建一个 ref

bless 完成这一工作。 bless 有两个参数:一个 ref ,一个字符串。

本文地址:http://com.8s8s.com/it/it32896.htm