我喜欢像这样在 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!');
}
不幸的是,这很慢,我找不到与之等效的任何 Mouse 或 Moo。 可惜 Perl 没有像 PyPy 这样的东西。
有人知道如何使用更轻的实现来归档相同的内容吗?
最佳答案
实验Moops
module 是另一个语法扩展,其工作方式非常相似。它的灵感来自 MooseX::Declare(但更快)和试图将这种语法引入核心 perl 的 p5-mop 项目。
您的示例将在没有重大更改的情况下进行翻译。如果你想指定一个 MOP 后端,你可以声明一个类似 class Foo using Moose
的类,但它默认为 Moo
,这比 Moose 更简单。
关于performance - Perl - OOP/Moose - 方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19362116/