小编Clo*_*cky的帖子

Perl autoboxing与运算符重载一起似乎不起作用?

我试图使用Perl的自动装箱功能和操作员重载功能,但它们似乎并没有同时工作.

我是否有可能错过了如何正确使用过载的一些细微差别,或者这是一种奇怪的异常行为?

示例代码:

#!/usr/bin/perl
use strict;
use warnings;

package overload_me;
use overload('+' => "overloaded_add");
sub overloaded_add{
    my ($me, $him) = @_;
    $me+$him+1;
}

use autobox NUMBER => 'overload_me';
my $autoboxing_test = 4->overloaded_add(5);
my $overloading_test = 4 + 5;
print "Autoboxing test: 4+5=$autoboxing_test 
Overloading test: 4+5=$overloading_test\n";
Run Code Online (Sandbox Code Playgroud)

测试输出:

Autoboxing test: 4+5=10 Overloading test: 4+5=9
Run Code Online (Sandbox Code Playgroud)

perl autoboxing operator-overloading

3
推荐指数
1
解决办法
159
查看次数

标签 统计

autoboxing ×1

operator-overloading ×1

perl ×1