Mam następujący kod w moim Dancer modułu aplikacji:Czy mogę utworzyć instancję obiektu w układzie Dancer, aby zwrócić wartość do wyświetlenia?
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;
Mam klasy o nazwie Moops Dice.pm że działa dobrze, gdybym go przetestować z .pl pliku, ale gdy próbuję do niego dostęp przez przeglądarkę internetową pojawia się następujący błąd: Nie mogę zlokalizować metody obiektu "nowy" przez pakiet "Kości" (być może zapomniałeś załadować "Kości"?).
Czy mogę to zrobić z tancerzem?
Oto stosowny kod z 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();
}
}
Zakładam, że 'wykorzystanie Kości; '? – ThisSuitIsBlackNot
@ThisSuitIsBlackNot Komunikat o błędzie sugeruje, że * nie * mają 'use Dice;' –
Używanie Dice jest rzeczywiście u góry skryptu. Zaktualizowałem kod, aby pokazać cały skrypt. – BackPacker777