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

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

10得票2回答
什么是在Moose属性访问器上进行字符串重载的最佳方法?

我有一个类,想对它的id属性进行字符串重载。但是,Moose不允许在属性访问器上应用字符串重载。例如:package Foo; use Moose; use overload '""' => \&id, fallback => 1; has 'id' => ( ...

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 ...

16得票3回答
驼鹿"构建器"与"默认值"的区别

我了解使用 builder 可以使子类轻松地覆盖属性默认值,而角色可以require它们。这也可以通过以下方式使用default来完成:has 'foo' => is => 'rw', isa => 'Str', default ...

23得票3回答
如何使Mason2变成UTF-8格式?

重新阐述问题,因为: @optional 有人问我 问题不够清晰,并且给出了一个基于HTML::Mason的解决方案四个简单步骤使Mason与Apache、mod_perl和DBI兼容,引起了混淆 原始问题已经有4年历史,在此期间(2012年)创建了“诗人(Poet)” 评论:这个问题...

18得票4回答
Perl::Critic:摆脱 Moose 后的生活?

我已经开始将一个项目转换为Moose,第一件事就是注意到我的critic/tidy测试无法通过。Moose、Tidy和Critic似乎不再像以前那样彼此喜欢了。 有没有文档介绍如何使critic/tidy更好地支持Moose方言?大多数Moose用户做什么? 放松/放弃对更复杂的Moose模...

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

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

9得票4回答
Moose 类的依赖注入

我有一个Moose类,需要发送类型为Foo::Request的请求。我需要使这个依赖在外部可访问,这样我就可以方便地在测试中交换请求实现。我想出了以下属性: has request_builder => ( is => 'rw', isa => 'CodeR...

8得票3回答
Moose和MooseX::Declare的有用错误信息

麋鹿很可爱,但有时候简单的错别字会导致令人毛骨悚然的长堆栈跟踪,从我的角度来看,没有任何有用的内容。 那么,有没有工具可以将这个问题解释为有用的东西呢? 特别是对于使用纯Moose、Moose+MooseX::Method::Signatures和MooseX::Declare的类。 这...