我喜欢在Perl中编写OO代码:
use MooseX::Declare;
use Method::Signatures::Modifiers;
use v5.14.2;
class Talker
{
method talk (Str $text) {
$self=>say $text;
}
my $talk_object = Talker->new();
$talk_object->talk('Hello!');
}
不幸的是,这很慢,我找不到任何鼠标或Moo相当于它。 遗憾的是,Perl没有像PyPy那样的东西。
有人知道如何使用较轻的实现存档相同的内容吗?
答案 0 :(得分:5)
实验Moops
模块是另一种非常相似的语法扩展。它的灵感来自MooseX :: Declare(但速度更快)以及试图将这种语法带入核心perl的p5-mop项目。
您的示例将在没有重大更改的情况下翻译。如果要指定MOP后端,可以声明类似class Foo using Moose
的类,但默认为Moo
,这比Moose简单。