首先,建立一個名爲Cocoa.pm的包文件(擴展名pm是包的缺省擴展名,意爲PerlModule)。一個模塊就是一個包,一個包就是一個類。在作其它事以前,先加入「1;」這樣一行,當你增長其它行時,記住保留「1;」爲最後一行。這是Perl包的必需條件,不然該包就不會被Perl處理。 less
其次,咱們往包裏添加方法使之成爲一個類。第一個需添加的方法是new(),它是建立對象時必須被調用的,new()方法是對象的構造函數。 函數
構造函數是類的子程序,它返回與類名相關的一個引用 spa
package person; use strict; sub new{ my $class = shift(); print ("Class=$class\n"); my $self ={}; \\建立一個不含鍵/值的哈希表的引用; $self->{"name"}=shift(); $self->{"sex"}=shift(); bless $self,$class; \\將該引用和類名關聯,類名是可選項 return $self; \\返回值指向該引用 }從new()返回後,$self引用被銷燬,可是調用函數保存了對該哈希表 的引用,因此該哈希表的引用數不會爲零。從而使Perl在內存中保存該哈希表
#!/usr/bin/perl push(@INC,'pwd'); use person; my $cup = new person("Tom","man");
註釋 code
第二行\\將當前目錄加到路徑尋找列表@INC中,
或者push(@INC,dirname(__FILE__)) 使用到File::Basename模塊
第三行\\告訴Perl在@INC路徑尋找文件person.pm幷包含到解析的源文件拷貝中。
第四行\\或者my $cup = person->new("Tom","man"); person::new("Tom","man");
注意: 對象
必定要在構造函數中初始化變量; 內存
必定要用my函數在方法中建立變量; class
必定不要在方法中使用local,除非真的想把變量傳遞給其餘子程序; 變量
必定不要在類模塊中使用全局變量。 擴展