3

假设我有一个受祝福的引用/对象$a$b,每个内部都存储为 hashref 并具有:

$a->{_x}
$b->{_x}

是否可以重载算术运算,所以当我这样做时:

my $c = $a + $b;

我将有一个有福的参考$c$c->{_x}等于$a->{_x} + $b->{_x}??

4

1 回答 1

6

当然。只需将您通常的构造函数用于重载子中所需类的新对象,+并将其值设置为该总和(或您想要的任何其他值)。

假设您有new将初始值作为参数的构造函数,则类似于:

sub plus {
   my $self = shift;
   my $right = (shift or 0);
   return MySuperNumberObject->new($self->{_x} + $right);
};

use overload '+' => \+
于 2012-07-06T12:37:49.250 回答