问题标签 [moose]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
345 浏览

perl - 为什么 MooseX::Storage 似乎不遵循某些对象的属性特征?

我整理了一个小测试用例来证明我的问题:

我希望这会打印对象,而不是 P2 包中的“lol”属性 - 但是,我仍然可以在结果中看到这一点$stored->pack

我是否使用了 MooseX::Storage 错误,或者这看起来像错误的行为?

0 投票
2 回答
503 浏览

perl - 驼鹿还是 Meta?

我一直在尝试以多种方式做到这一点,但它们似乎都不够优雅。(我也想知道 CPAN 或 Moose 是否已经有了这个。随着时间的推移,我进行的数十次搜索都没有显示出完全匹配的内容。)

我想创建一种类

  • 是其他类的 Base + Facade + Factory,它们将自身加载为目标类型。
  • “工厂”是公正Base->new( %params )的,它根据各个子类注册的策略创建类型。
  • 每个子类都知道有关Base 类的基本信息,但我试图将其保持在最低限度。看下面的例子:UnresolvedPath只知道我们应该首先检查是否存在。

最明显的例子是文件系统目录和文件:

  • 问题:Moose 是否为此提供了一个优雅的解决方案?还是我必须进入 Class::MOP 才能批量购买?
0 投票
2 回答
2223 浏览

perl - 你如何在 Moose 中创建子类型?

我刚开始使用Moose

我正在创建一个简单的通知对象,并想检查输入是否属于“电子邮件”类型。(暂时忽略简单的正则表达式匹配)。

从文档中我认为它应该类似于以下代码:

但我收到以下错误:

有人知道如何在 Moose 中创建自定义电子邮件子类型吗?

Moose 版本:0.72 perl 版本:5.10.0,平台:linux-ubuntu 8.10

0 投票
11 回答
4177 浏览

perl - 我应该先学习 Perl 5 OO 还是 Moose?

我对 Perl 编程还比较陌生,但我知道 Perl 5 OO 的基本工作原理。然而,我从来没有用 Perl 5 OO 创建过任何项目,所以我很确定我会遇到很多陷阱。

最近我发现了关于Moose模块的炒作。我查看了一些关于 CPAN 的文档,发现它非常有趣,并且对我作为开发人员有很大帮助。此外,它似乎非常稳定和可靠。

我是否应该加强使用基本的 Perl 5 OO 语法,直到我对它非常熟悉(了解这些阶段后面发生了什么),还是您认为我应该继续直接开始使用 Moose 开发应用程序?还是我应该试试鼠标?

对此的任何想法和经验表示赞赏。

提前致谢!

0 投票
2 回答
1244 浏览

perl - 在 Moose 中创建类属性的最佳方法是什么?

我需要 Moose 中的类属性。现在我在说:

0 投票
1 回答
1215 浏览

perl - 在 Moose 中处理多个继承的构造函数

问候,

我正在学习Moose,我正在尝试用 Moose 编写一个CGI::Application子类,由于 CGI-App 不是基于 Moose 的事实,这使得这变得困难。

在我的其他 CGI-App 子类中,我喜欢有一个父类,它具有setup查看子类的符号表并自动设置运行模式的方法。我想我可以使用 Moose 的元类工具以更简洁的方式实现相同的目标。所以这是我在父类中的内容:

...在我的孩子班上:

我意识到我的运行模式没有正确设置的原因是因为setup被 CGI-App 构造函数调用,并且Moose::Object在我的类中粘贴了它自己的构造函数。我试图用方法修饰符解决这个问题:

这给了我

然而,我有一种感觉,我正在以完全错误的方式解决这个问题,而 Moose 有更好的设施来实现我想要的,我还没有发现。

0 投票
1 回答
1971 浏览

perl - 使用 MooseX::Declare 关闭内联构造函数

问候,

作为我之前关于 Moose 的问题的后续,我现在遇到了一个新问题。我有一个 Moose 类,它使用配方 12来扩展非 Moose 父类。这里是:

这很好用。我也有这个类的一个子类,它使用MooseX::Declare. 但是,因为我现在覆盖了默认的 Moose 构造函数,所以我的子类会发出以下警告:

由于在幕后自动MooseX::Declare调用make_immutable,我一直无法弄清楚如何让它打开inline_constructor => 0参数。

0 投票
2 回答
6158 浏览

perl - Moose 的角色和特征有何不同?

我编写了一组在Moose中也使用角色实现的类和接口。我难以理解的是 Moose 特征与角色在使用和实现方面的确切差异。

Moose 文档指出:

重要的是要了解角色和特征是一回事。角色可以用作特质,特质就是角色。区分这两者的唯一一点是,一个 trait 以一种允许 Moose 将短名称解析为类名的方式打包。换句话说,对于一个 trait,调用者可以通过一个短名称来引用它,比如“Big”,Moose 会将它解析为一个类,比如 MooseX::Embiggen::Meta::Attribute::Role::Big。

我的理解是特征和角色是“相同的”。但是,当使用语法对想法进行基本测试时,use Moose -traits 'Foo'似乎并没有达到我的预期。当然,我必须在这里遗漏一些东西。

第一个示例因“无法定位对象方法 'foo'”而失败

与这个(确实有效)相比:

0 投票
2 回答
274 浏览

perl - 如何通过 MooseX::Declare 声明一个类使用多个角色?

鉴于角色 Fooable 和 Barable 都已定义,我如何说 FooBar 类执行 Fooable 和 Barable?我没有问题说

但是当我尝试添加

我得到了不太有用的错误

为了向自己证明我没有疯,我用 Moose 重写了它。此代码有效(但比罪更丑陋):

0 投票
3 回答
977 浏览

perl - 在 MooseX::Declare 中创建 BUILD 方法的正确方法是什么?

我对MooseX::DeclareBUILD中的方法有困难。如果我说:

我收到以下不太有用的错误消息:

但如果我说:

一切正常(但丑陋且与其余代码格格不入)。