ho il seguente codice nel mio modulo app Dancer:Posso creare un'istanza di un oggetto in Dancer per restituire un valore da visualizzare?
package Deadlands;
use Dancer ':syntax';
use Dice;
our $VERSION = '0.1';
get '/' => sub {
my ($dieQty, $dieType);
$dieQty = param('dieQty');
$dieType = param('dieType');
if (defined $dieQty && defined $dieType) {
return Dice->new(dieType => $dieType, dieQty => $dieQty)->getStandardResult();
}
template 'index';
};
true;
ho una classe denominata Moops Dice.pm che funziona bene se provo con un file .pl, ma quando provo ad accedervi tramite il browser Web, viene visualizzato il seguente errore: Impossibile individuare il metodo dell'oggetto "nuovo" tramite il pacchetto "Dice" (forse hai dimenticato di caricare "Dice"?).
Posso farlo con Dancer?
Ecco il codice pertinente da Dice.pm:
use 5.14.3;
use Moops;
class Dice 1.0 {
has dieType => (is => 'rw', isa => Int, required => 1);
has dieQty => (is => 'rw', isa => Int, required => 1);
has finalResult => (is => 'rw', isa => Int, required => 0);
method getStandardResult() {
$self->finalResult(int(rand($self->dieType()) + 1));
return $self->finalResult();
}
}
vi assumere 'uso Dice; '? – ThisSuitIsBlackNot
@ThisSuitIsBlackNot Il messaggio di errore suggerisce che * non hanno * usare 'Dadi;' –
Usa Dice è effettivamente nella parte superiore dello script. Ho aggiornato il codice per mostrare l'intero script. – BackPacker777