9得票5回答
Perl面向对象框架和程序设计 - Moose和Conway的内部对象(Class::Std)

这更像是一个使用案例的问题...但也足够普遍,以至于可以更广泛地应用: 简而言之,我正在开发一个模块,它更多地是一个命令行包装器;自然地是OO。不详细说明(除非有人需要),在这个框架中没有太多复杂性,但在这个框架中拥有三到四个对象感觉很自然。最后,这是一个我将发布的开源项目,而不是一个由同...

7得票2回答
Perl Moose属性的最小、最大和默认值

使用Moose,可以创建具有默认值的属性。我有一组属性,它们都有最小值、最大值和默认值。它们是表示比例(如Tk::Scale)的属性。 目前,我至少有3个属性: 当前和默认: has 'attr' => (is => 'rw', isa => 'Int', default...

17得票4回答
Moose与MooseX::Declare的比较

POSTLUDE 由于 MooseX::Declare 依赖于已经过时的 Devel::Declare ,因此不建议再使用它。如果有人想使用 MX::D,则应查看Moops。 翻译 假设我已经掌握了旧式 Perl 面向对象编程的基本知识,并且打算在某种 Moose 变体中编写一些新代码(...

8得票2回答
除了 Catalyst 之外,还有哪些现代化(Moose/PSGI)的 Web 框架?

除了Catalyst之外,还有哪些使用Moose编写、原生支持PSGI(而不是使用某些PSGI仿真)且Unicode安全的Perl Web开发框架,且这些框架小巧、可扩展且易用呢? 使用Moose编写 原生支持PSGI(而不是使用某些PSGI仿真) Unicode安全,支持Perl 5.1...

12得票4回答
如何在Perl中实现“按合同设计”?

我正在研究在我们的Perl项目中使用DbC,并尝试找到验证源代码中合同的最佳方法(例如检查前/后条件,不变量等)。 Class::Contract是由Damian Conway编写的,现在由C. Garret Goebel维护,但看起来已经8年没有更新了。 看起来我想要使用的是Moose,...

11得票2回答
我该如何模拟 Moose 对象?

当模拟将注入到其他Moose对象中作为类型约束属性时,Perl开发人员使用了哪些策略? Test::MockObject::Extends似乎与Moose不兼容。虽然我需要将对象绑定为特定包,但普通的Test::MockObject无法正常工作。我相信其他人也遇到过类似的困难。你是如何解决的...

8得票3回答
我该如何处理Moose中的可选参数?

我目前正在使用"Moose"包开始学习Perl面向对象编程。 编译器抱怨说在Parser.pm的第16行"无法修改非lvalue子例程调用"。 我不太明白为什么我不能只分配一个新对象。我猜想在Moose中有更好或更有效的方法来处理可选参数? #!/usr/bin/perl -w ...

9得票3回答
为什么Moose代码运行如此缓慢?

我正在尝试解析一个大型的XML文件。我使用XML::SAX(使用Expat而不是perl实现)读取它,并将所有第二层及以下节点放入我的“Node”类中: package Node; use Moose; has "name" => ( isa => "Str", ...

7得票1回答
我怎样才能访问应用了我的Moose角色的模块的元类?

我正在使用Moose角色来应用一些包装行为到类中的一些访问器方法上。我想将此角色应用于多个模块,每个模块都有不同的属性集,我想要包装它们的访问器。是否可以从角色内部访问被应用模块的元类?即像这样: package My::Foo; use Moose; with 'My::Role::X';...

11得票3回答
驼鹿真的这么慢吗?

最近我下载了Moose。实验性地,我用Moose重写了一个现有的模块。它似乎是一种避免编写大量重复代码的便捷方式。我运行了该模块的测试,并注意到它有点延迟。我使用-d:DProf对代码进行了分析,发现只需包含以下一行:no Moose; 在我的电脑上,代码执行时间增加了约0.25秒。这是典型的...