9 has foo => (is => 'rw');
10 has bar => (is => 'rw');
11 __PACKAGE__->meta->make_immutable();
16 use MooseX::StrictConstructor;
17 has foo => (is => 'rw');
18 has bar => (is => 'rw');
19 __PACKAGE__->meta->make_immutable();
24 has foo => (is => 'rw');
25 has bar => (is => 'rw');
26 __PACKAGE__->meta->make_immutable();
31 has foo => (is => 'rw');
32 has bar => (is => 'rw');
33 __PACKAGE__->meta->make_immutable(strict_constructor => 1);
39 use base 'Class::Accessor::Fast';
40 __PACKAGE__->mk_accessors(qw(foo bar));
43 use Benchmark qw(cmpthese);
45 print "\nCREATION AND DESTRUCTION\n";
47 Moose => sub { my $x = PlainMoose->new(foo => 23, bar => 42) },
48 Mouse => sub { my $x = PlainMouse->new(foo => 23, bar => 42) },
49 MooseSC => sub { my $x = PlainMooseSC->new(foo => 23, bar => 42) },
50 MouseSC => sub { my $x = PlainMouseSC->new(foo => 23, bar => 42) },
51 ClassAccessorFast => sub { my $x = CAF->new({foo => 23, bar => 42}) },