Performance Perl-OOP/Moose-method签名

Performance Perl-OOP/Moose-method签名,performance,perl,oop,moose,method-signature,Performance,Perl,Oop,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!

我喜欢用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!');
}
不幸的是,这是相当缓慢的,我找不到任何鼠标或摩尔相当于它。 Perl没有类似PyPy的东西,这真是太遗憾了

有人知道如何用更轻的实现来归档吗?

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


您的示例将在没有重大更改的情况下进行翻译。如果要指定MOP后端,可以使用Moose声明一个类,如
class Foo,但它默认为
Moo
,这比Moose简单。

它到底慢多少?如果您正在谈论使用Moose对编译时的影响,那么最好通过使用某种持久性代码来避免重复编译。至少,就我现在所见。试图避免重复编译在这里不是一个好方法…:/。我会看一看Moops。不幸的是,由于这些混乱,OOP在Perl中仍然有着不好的品味。它绝对值得一看。对我来说,似乎在重量和便利性之间取得了合理的平衡——刚刚开始在一些小的cron驱动脚本中尝试。启动时间对我来说似乎没问题。但确实需要最新(5.14+)版本的Perl。