次のようなスカラー (数値) のメソッドを呼び出すコードを見ました。
print 42->is_odd
コードでこの種の「機能」を実現するには、何をオーバーロードする必要がありますか?
次のようなスカラー (数値) のメソッドを呼び出すコードを見ました。
print 42->is_odd
コードでこの種の「機能」を実現するには、何をオーバーロードする必要がありますか?
オートボックスについて言及していますか?Perl で autobox を使用する必要がありますか?も参照してください。.
これはオートボックス機能を使用した例です。
#!/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";