Как я могу вызвать методы в скалярах Perl? - PullRequest
4 голосов
/ 26 ноября 2009

Я видел некоторый код, который вызывал методы в скалярах (числах), что-то вроде:

print 42->is_odd

Что вам нужно перегрузить, чтобы вы могли достичь такого рода «функциональности» в вашем коде?

Ответы [ 2 ]

10 голосов
/ 26 ноября 2009

Вы имеете в виду autobox ? Смотрите также Должен ли я использовать autobox в Perl? .

1 голос
/ 26 ноября 2009

Это пример использования функции 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";
...