面向对象的Perl 1

面向对象的 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 ,一个字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值