定义类

通常,Perl 中的类只是包。它们可以包含数据和方法,就像通常的包一样。

package Point;
use strict;

my $CANVAS_SIZE = [1000, 1000];

sub new {
    ...
}

sub polar_coordinates {
    ...
}

1;

值得注意的是,包中声明的变量是类变量,而不是对象(实例)变量。更改包级变量会影响类的所有对象。如何存储特定于对象的数据,请参阅创建对象

使类包特定的是箭头运算符 ->。它可以在一个简单的词之后使用:

Point->new(...);

或者在标量变量之后(通常持有参考):

my @polar = $point->polar_coordinates;

箭头左侧的内容前置于方法的给定参数列表中。例如,调用结束后

Point->new(1, 2);

new 中的数组 @_ 将包含三个参数:('Point', 1, 2)

表示类的包应该考虑这个约定,并期望它们的所有方法都有一个额外的参数。