Как я могу вызвать методы в скалярах Perl?
-
05-07-2019 - |
Вопрос
Я видел некоторый код, который вызывал методы в скалярах (числах), что-то вроде:
print 42->is_odd
Что нужно перегрузить, чтобы вы могли достичь такого рода "функциональности"? в вашем коде?
Решение
Вы имеете в виду autobox ? См. Также Нужно ли использовать автобокс в Perl? .
Другие советы
Это пример использования функции автобокса.
#!/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";
Не связан с StackOverflow