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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章