好的只是为了理智检查超载似乎并没有为我工作.我不知道它是我的perl版本,还是overload.pm的版本,或者我实现它的方式有问题,但这段代码对我不起作用.
perl版本
This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi
Run Code Online (Sandbox Code Playgroud)
过载版本
perl -Moverload -e 'print "$overload::VERSION\n";'
1.07
Run Code Online (Sandbox Code Playgroud)
Token.pm
package Token;
use namespace::autoclean;
use Data::Dumper;
use Moose;
use Moose::Util::TypeConstraints;
use overload '+' => \&_overload_add, fallback => 1;
has 'secretvalue' => ( is => 'rw', isa => 'Int');
sub _overload_add{
my ( $one, $two ) = @_;
my $value = $one->secretvalue() + $two->secretvalue();
return ($value);
}
Run Code Online (Sandbox Code Playgroud)
主要
use strict;
use warnings;
use Token;
my $t = Token->new( secretvalue => 17, key => …Run Code Online (Sandbox Code Playgroud)