首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能否实例化一个对象,以返回要显示的值?

我能否实例化一个对象,以返回要显示的值?
EN

Stack Overflow用户
提问于 2013-12-11 17:48:40
回答 1查看 163关注 0票数 6

我的Dancer应用程序模块中有以下代码:

代码语言:javascript
复制
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;

我有一个名为Dice.pm的Moops类,如果我用一个.pl文件测试它,它就能正常工作,但是当我试图通过web浏览器访问它时,我会得到以下错误:无法通过包"Dice“找到对象方法"new”(可能您忘了加载"Dice"?)

我能用丹瑟做这个吗?

下面是来自Dice.pm的相关代码:

代码语言:javascript
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-11 22:19:11

我本来想说您忘记了package DiceDice.pm中,但是在阅读了Moops之后,我对名称空间感到困惑。

让我们来看看Moops文件

如果在main以外的包中使用Moops,则声明中使用的包名由该外部包“限定”,除非它们包含"::“。例如: 包Quux;使用Moops;类Foo {}#声明Quux::Foo类Xyzzy::Foo #声明Xyzzy::Foo扩展Foo {}#.扩展Quux::Foo类::Baz {}#声明Baz

如果class DiceDice.pm中,如果我正确阅读,它实际上将变成Dice::Dice。因此,您必须使用use Dice并使用Dice::Dice->new创建对象。

为了使包DiceDice.pm中使用Moops,我相信您需要像这样声明这个类:

代码语言:javascript
复制
class ::Dice 1.0 {
    #  ^------------- there are two colons here!

    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();
    }
}

然后你可以:

代码语言:javascript
复制
use Dice;
Dice->new;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20526354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档