Come posso chiamare metodi su scalari Perl?
-
05-07-2019 - |
Domanda
Ho visto del codice che chiamava metodi su scalari (numeri), qualcosa come:
print 42->is_odd
Che cosa devi sovraccaricare per poter ottenere questo tipo di "funzionalità" nel tuo codice?
Soluzione
Ti riferisci a autobox ? Vedi anche Dovrei usare autobox in Perl? .
Altri suggerimenti
Questo è un esempio usando la funzione 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";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow