我看到一些代码在scalars(数字)上调用方法,类似于:
print 42->is_odd
你需要重载什么才能在代码中实现这种“功能”?
答案 0 :(得分:10)
您指的是autobox吗?另请参阅Should I use autobox in Perl?。
答案 1 :(得分:1)
这是使用自动装箱功能的示例。
#!/usr/bin/perl
use strict;
use warnings;
package MyInt;
sub is_odd {
my $int = shift;
return ($int%2);
}
package main;
use autobox INTEGER => 'MyInt';
print "42: ".42->is_odd."\n";
print "43: ".43->is_odd."\n";
print "44: ".44->is_odd."\n";