9 has foo => (is => 'rw');
10 __PACKAGE__->meta->make_immutable();
15 has foo => (is => 'rw');
16 __PACKAGE__->meta->make_immutable();
19 package ClassAccessorFast;
22 use base 'Class::Accessor::Fast';
23 __PACKAGE__->mk_accessors(qw(foo));
26 use Benchmark qw(cmpthese);
28 my $moose = PlainMoose->new;
29 my $mouse = PlainMouse->new;
30 my $caf = ClassAccessorFast->new;
35 Moose => sub { $moose->foo(23) },
36 Mouse => sub { $mouse->foo(23) },
37 ClassAccessorFast => sub { $caf->foo(23) },
42 Moose => sub { $moose->foo },
43 Mouse => sub { $mouse->foo },
44 ClassAccessorFast => sub { $caf->foo },
47 print "\nCREATION AND DESTRUCTION\n";
49 Moose => sub { my $x = PlainMoose->new(foo => 23) },
50 Mouse => sub { my $x = PlainMouse->new(foo => 23) },
51 ClassAccessorFast => sub { my $x = ClassAccessorFast->new({foo => 23}) },