Reputation: 1210
I like to code OO in Perl like this:
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!');
}
Unfortunately this is quite slow, I couldn't find any Mouse or Moo equivalent to it. What a pity that Perl hasn't got anything like PyPy.
Does someone know how to archive the same with the lighter implementations?
Upvotes: 3
Views: 508
Reputation: 57640
The experimental Moops
module is another syntax extension that works fairly similar. It is inspired by MooseX::Declare (but is faster) and by the p5-mop project that is trying to bring such syntax into core perl.
Your example would translate without significant changes. If you want to specify a MOP backend, you can declare a class like class Foo using Moose
, but it defaults to Moo
, which is simpler than Moose.
Upvotes: 5