建立物件
與許多其他語言不同,Perl 沒有為你的物件分配記憶體的建構函式。相反,應該編寫一個類方法,它既可以建立資料結構,也可以使用資料填充它(你可能將其視為工廠方法設計模式)。
package Point;
use strict;
sub new {
my ($class, $x, $y) = @_;
my $self = { x => $x, y => $y }; # store object data in a hash
bless $self, $class; # bind the hash to the class
return $self;
}
該方法可以使用如下:
my $point = Point->new(1, 2.5);
每當箭頭運算子 ->
與方法一起使用時,其左運算元將被新增到給定的引數列表中。因此,new
中的 @_
將包含值 ('Point', 1, 2.5)
。
名稱 new
沒有什麼特別之處。你可以根據需要呼叫工廠方法。
雜湊沒有什麼特別之處。你可以通過以下方式執行相同操作:
package Point;
use strict;
sub new {
my ($class, @coord) = @_;
my $self = \@coord;
bless $self, $class;
return $self;
}
通常,任何引用都可以是物件,甚至是標量引用。但大多數情況下,雜湊是表示物件資料最方便的方式。