Perl - OOP/Moose - 方法签名

roy*_*att 3 oop perl performance moose method-signature

我喜欢在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!');
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这很慢,我找不到任何鼠标或Moo相当于它.很遗憾Perl没有像PyPy那样的东西.

有人知道如何使用较轻的实现存档相同的内容吗?

amo*_*mon 5

实验Moops模块是另一种非常相似的语法扩展.它的灵感来自MooseX :: Declare(但速度更快)和p5-mop项目试图将这种语法带入核心perl.

您的示例将在没有重大更改的情 如果你想指定一个MOP后端,你可以声明一个类class Foo using Moose,但它默认为Moo,这比Moose简单.

  • 绝对值得一看Moops.似乎在重量和方便之间找到了一个合理的平衡 - 刚开始在一些小的cron驱动的脚本中尝试它.启动时间对我来说似乎没问题.是否需要最近的(5.14+)版本的Perl. (2认同)