Como posso chamar métodos em escalares Perl?
-
05-07-2019 - |
Pergunta
Eu vi algum código que chama métodos em escalares (números), algo como:
print 42->is_odd
O que você tem a sobrecarga de modo que você pode conseguir este tipo de "funcionalidade" em seu código?
Solução
Você está se referindo a autobox ? Veja também Devo usar autobox em Perl? .
Outras dicas
Este é um exemplo usando o recurso 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";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow