Я пытаюсь использовать как функцию автобокса 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";
Тестовый вывод:
Autoboxing test: 4+5=10 Overloading test: 4+5=9