42得票11回答
我应该先学习Perl 5面向对象编程还是Moose?

我在Perl编程方面还是比较新手,但我知道Perl 5面向对象编程的基本原理。然而,我从未使用过Perl 5 OO创建任何项目,所以我很确定会遇到许多问题。 最近我发现了Moose模块的热度。我查看了一些CPAN文档,发现它非常有趣,并且对开发人员非常有帮助。此外,它似乎非常稳定可靠。 您...

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

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

8得票3回答
如果在Moose中没有提供必需的属性,该如何获得更好的错误消息?

我是一名全新接触Moose的人。直到今天,我们的环境一直在使用不支持Moose的Perl 5.8.2版本。 我正在学习一些例子,我认为在属性上设置"required => 1"选项会很方便,但是当我尝试使用该选项时,返回的错误信息并不真正有用。 以下是一个例子: cat.pl: ...

7得票1回答
如何设置一个静态变量,可以被同一个基类的所有子类访问(Perl/Moose)?

自从Perl/Moose在调用子类 BUILD 函数之前总是调用基类的 BUILD 函数,所以在实例化子类时会有一个新的基类实例。 如何创建可以被所有子类使用的静态变量,或者如何创建静态基类或抽象类?(这种方法是否合理?) 我试图创建一个动态启用或禁用某些功能的变量。该变量在运行时在基类中...

10得票4回答
如何扩展Moose的自动pragma导出?

你知道Moose在导入时自动打开strict和warnings吗?我想通过在我的Moose类中打开autodie和use feature ':5.10'来扩展这种行为。 我已经找到了Moose是如何做到这一点的,在Moose::Exporter中,它为Moose组装了一个自定义的import...

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

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

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

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

12得票1回答
在Perl / Moose中,我如何将修饰符应用于所有子类中的方法?

我有一个Moose类,打算作为子类的父类,并且每个子类都必须实现一个"execute"方法。但是,我想给我的类中的execute方法应用一个方法修饰符,以便它适用于所有子类中的execute方法。但是当方法被覆盖时,方法修饰符不会被保留。有没有办法确保我类的所有子类都将我的方法修饰符应用于他们...

7得票2回答
如何在Moose::Role中覆盖子例程?

我想要实现一个行为类似于Java中抽象类的Moose::Role类。我想在Role中实现一些方法,但同时希望能够在具体类中覆盖这些方法。如果我尝试使用扩展类时有效的相同方式来尝试这样做,则会得到错误消息Cannot add an override method if a local metho...

13得票1回答
为什么我可以将类名用作Moose类型,但不能在类型联合中使用?

我可以做到这一点:package Foo; use Moose; has 'time' => ( is => 'rw', isa => 'DateTime' ); package main; use DateTime; my $a = Foo-&...