4

次のようなスカラー (数値) のメソッドを呼び出すコードを見ました。

print 42->is_odd

コードでこの種の「機能」を実現するには、何をオーバーロードする必要がありますか?

4

2 に答える 2

10

オートボックスについて言及していますか?Perl で autobox を使用する必要がありますか?も参照してください。.

于 2009-11-25T21:44:29.740 に答える
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";
于 2009-11-26T11:57:22.653 に答える