问题标签 [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 回答
558 浏览

perl - 如何将 Moose 集成到 Komodo 中?

ActiveState 的Komodo是我在 OS X 和 XP 上首选的 Perl IDE。最近我开始使用Moose编写新项目。

有没有人找到一种方法来教 Komodo 如何“识别” Moose 的属性和方法声明?我很想在 Komodo 的“代码浏览器/代码资源管理器”中看到 Moose 支持。

0 投票
1 回答
263 浏览

perl - Perl 和 Moose:我应该使用什么基于 Moose 的包来替代 MooseX::Method

令我沮丧的是,我注意到它MooseX::Method不再被维护和弃用。

该软件包MooseX-Method-Signatures被宣传为替代品,但其文档显示:这是 ALPHA SOFTWARE。使用风险自负。功能可能会改变。

<whine>我该怎么办</whine>

0 投票
5 回答
4733 浏览

perl - 如何在 Perl 和 Moose 中编写工厂代码?

是否有更简单或更好(=> 更易于维护)的方式来使用 Perl 并Moose根据传入数据实例化类?

以下代码是我正在处理的项目中的精简示例。

编辑:当你调用 DBI 时,这让我很震惊。根据您传递的参数,它将使用完全不同的代码,同时保持(大部分)一致的界面

0 投票
1 回答
239 浏览

perl - 是否可以创建一个只能在 Moose 的构造函数中设置的属性?

是否可以创建一个只能在 Moose 的构造函数中设置的属性?我想做这样的事情:

我知道我可以创建一个无法在构造函数中设置的属性,但似乎缺少补充案例。

0 投票
4 回答
1302 浏览

c++ - 类似 C++ 的 Moose 与 Perl 的 OOP 用法

我一直在和 Moose 一起玩,感受一下。我想要一个纯虚函数的例子,比如 C++,但用 Moose 的说法(特别是以 C++ 的方式)。我知道,即使 Moose 采用比普通 Perl 更严格的模型,仍然有不止一种方法可以完成我的要求(通过方法修饰符或SUPER::调用)。这就是为什么我特别要求尽可能地类似于 C++ 的实现。至于“为什么?” 这个限制?主要是出于好奇,但也计划将一些 C++ 代码移植到带有 Moose 的 Perl 中,以一种以 C++ 为中心的人能认同的方式。

0 投票
2 回答
1908 浏览

perl - 如何模拟 Moose 对象?

Perl 人员在模拟 Moose 对象时使用了哪些策略,他们将作为类型约束属性注入到其他 Moose 对象中?

Test::MockObject::Extends似乎不太适合 Moose。我需要将该对象作为一个特定的包进行祝福,但香草 Test::MockObject 将不起作用。我相信其他人也有类似的困难。你是怎么解决的?

已经在 CPAN 上的解决方案的额外积分。

0 投票
3 回答
2173 浏览

perl - 使用 MooseX::Declare 创建 BUILDARGS 方法的正确方法是什么?

我在调用 BUILDARGS 时无法正确使用 MooseX::Declare。

我正在尝试创建一个对象作为文件的接口。(具体来说,我想要一个二进制文件的接口,让我可以查看文件中接下来的几个字节,然后将它们切掉以进行进一步处理。)

我希望能够像这样创建这些对象之一

然后像这样使用它

我的 binary_file_buffer 类定义/声明看起来像这样

(这里没有包含缓冲区加载和管理代码。这很简单。)

method问题是,我在BUILDARGS声明中使用了关键字。因此,MooseX::Declare 需要一个binary_file_buffer 对象作为BUILDARGS. 但是BUILDARGS获取传递给 new 的参数,所以第一个参数是字符串a 'binary_file_buffer',即包的名称。结果,它无法通过类型检查并在使用 new 创建对象时死掉,就像我在第一个代码片段中所做的那样。(至少这是我对正在发生的事情的理解。)

我得到的错误信息是:

我喜欢关键字为 $file_name 提供的类型检查糖method,但我不知道如何获取它,因为从BUILDARGS技术上讲这不是一种方法。

MooseX::Declare 有没有办法跳过$self创建,或者类似的东西?

我这样做是正确的 MooseX::Declare 方式吗?还是我错过了什么?

0 投票
6 回答
1036 浏览

performance - 如何提高 Moose 在非持久 CGI 进程中的性能?

Moose是一个很棒的对象框架。问题在于,连同它的依赖关系,它非常大。我们的分析表明,在我们的平台上,简单地加载 Moose 将在非持久 CGI 应用程序脚本上产生 5-6 秒的开销。对于这些一次性应用程序来说,这是不可接受的。

相比之下,当我们使用持久化进程系统(如 FCGI)时,这种启动开销就被消除了(或者更确切地说,只发生一次),一切都很好。我们遇到的问题是我们不能保证我们所有的代码总是在一个持久化进程下运行。

我们调查了使用鼠标作为 Moose 的功能受限的替代品,但事实证明(如本答案中所述)这不是一个可行的选择。我们编写的任何与 Moose 一起使用的库都无法以微妙但重要的方式与 Mouse 一起使用。而且我们真的不想分叉我们所有的模块,这样我们就可以同时支持持久环境中的 Moose 和用于“香草”CGI 的鼠标。

鉴于此,我们有以下选择:

  1. 酌情分叉我们的内部模块以与 Moose 或 Mouse 一起使用。(呸!)
  2. 只为 FCGI/Moose 开发我们的模块。不再支持“香草”CGI。如果我们必须编写不持久的脚本,他们将无法利用我们的内部模块。
  3. 不要使用 Moose 或 Mouse,而是使用其他一些对象框架。

哪个选项最好?我们现在倾向于 2,如果我们必须让某些东西像普通 CGI 一样运行,我们只会把它吸干。其他框架呢?还有什么更轻量级的我们应该关注的吗?

0 投票
4 回答
6043 浏览

perl - 在 Moose 中,如何在任何时候修改属性?

如果您有一个需要在设置时随时修改的属性,是否有一种巧妙的方法可以做到这一点,而不是自己编写访问器并直接处理 的内容$self,如本例中所做的那样?

我考虑trigger过,但似乎需要相同的方法。

是在Moose$self中直接使用被认为是不好的做法的哈希引用,还是我担心没有问题?

0 投票
2 回答
1250 浏览

perl - 如何在 Moose 中将类变量声明为浮点数?

如何在 Moose 中将类变量声明为浮点数?

下面我的(虚构)示例为“Real”、“Number”等产生错误……“Str”有效,但没有达到目的……搜索/谷歌没有帮助,因为我无法找到正确的搜索词…… .


问题.pm


主文件