建立物件

與許多其他語言不同,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;
}

通常,任何引用都可以是物件,甚至是標量引用。但大多數情況下,雜湊是表示物件資料最方便的方式。