7得票3回答
我该如何在Perl和Moose中创建一个不可变对象的循环图?

这似乎是一个明显无望的情况,但是否有技巧可以在Perl中创建不可变对象的循环图?类似于这样的东西: package Node; use Moose; has [qw/parent child/] => (is => 'ro', isa => 'Node'); packag...

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

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

8得票3回答
Moose(Perl):将undef转换为空字符串或0,而不是die()

由于我的Moose构造函数中存在不完整的数据,QA给了我很多异常反馈。虽然构造函数参数中存在属性名称,但属性值为undef。 对于许多脚本应用程序来说,有些事情就是undef,这是很正常的现象。通常情况下这是没有问题的。您不希望从 pragma中收到烦人的警告(因此执行no warnings...

7得票4回答
Moose中的单例角色

我正在尝试使用Perl和Moose编写单例角色。我知道有一个MooseX :: Singleton模块可用,但在我们的项目中需要引入另一个CPAN模块时总是会遇到阻力。在尝试了这个方法并遇到一些问题后,我想了解为什么我的方法不起作用。我编写的单例角色如下: package Singleton...

7得票4回答
如何灵活地向Moose对象添加数据?

我正在为moose对象编写一个模块。我想允许用户(包括我自己)根据需要动态添加一些字段。由于我不知道这些字段会是什么,因此无法事先定义它们。 目前,我只添加了一个额外的哈希引用类型的字段,名为extra,其设置为rw。因此,用户可以简单地将内容放入该哈希表中: # $obj is a re...

12得票2回答
Perl/Moose面向对象设计,包层次结构

我是一个普通的Perl程序员。我对语言本身没有问题,但对于“好的”对象设计却一直感到棘手。虽然我能够理解(大部分)CPAN模块而没有遇到严重的问题,但我无法设计出简单的对象层次结构。 例如 - 现在面对一个非常简单的应用程序(Web和命令行界面): 已经通过身份验证的学生上传zip文件(其中...

10得票2回答
如何在Moose中创建子类型?

我刚开始使用Moose。我正在创建一个简单的通知对象,并希望检查输入是否属于“电子邮件”类型。(暂时忽略简单的正则匹配)。根据文档,我认为代码应该如下所示:# --- contents of message.pl --- # package Message; use Moose; subty...

12得票6回答
MooseX::Declare和MooseX::Method::Signatures已经可以投入生产使用了吗?

从当前版本(0.98)的Moose :: Manual :: MooseX开始,以下是相关内容: 我们对 MooseX :: Method :: Signatures 和 MooseX :: Declare 的未来充满希望。 但是,这些模块虽然被社区中一些更疯狂的成员经常用于生产,但仍然标...

12得票2回答
用 Moose 创建类属性的最佳方法是什么?

我需要在Moose中添加一个class属性。目前我的代码是:#!/usr/bin/perl use 5.010; use strict; use warnings; use MooseX::Declare; class User { has id => (isa =...

10得票6回答
如何在非持久化CGI进程中提高Moose性能?

Moose 是一个非常棒的对象框架。问题是,加上它的依赖项,它非常庞大。我们的分析表明,在我们的平台上,仅加载 Moose 就会使非持久化 CGI 应用程序脚本产生5到6秒的开销。对于这些一次性应用程序来说,这是完全不能接受的。 相比之下,当我们使用持久进程系统(例如 FCGI)时,启动开销...