Implement strict constructors, which will warn unkown constructor arguments
[gitmo/Mouse.git] / benchmarks / vs_caf_w_destructors.pl
CommitLineData
b988c856 1#!perl
2
3### MODULES
4
5
6{
7 package PlainMoose;
8 use Moose;
9 has foo => (is => 'rw');
10
11 sub DEMOLISH { }
12 __PACKAGE__->meta->make_immutable();
13}
14{
15 package PlainMouse;
16 use Mouse;
17 has foo => (is => 'rw');
18
19 sub DEMOLISH { }
20 __PACKAGE__->meta->make_immutable();
21}
22{
23 package ClassAccessorFast;
24 use warnings;
25 use strict;
26 use base 'Class::Accessor::Fast';
27 __PACKAGE__->mk_accessors(qw(foo));
28
29 sub DESTROY { }
30}
31
32use Benchmark qw(cmpthese);
33
34my $moose = PlainMoose->new;
35my $mouse = PlainMouse->new;
36my $caf = ClassAccessorFast->new;
37
38print "\nCREATION AND DESTRUCTION\n";
39cmpthese(-1, {
40 Moose => sub { my $x = PlainMoose->new(foo => 23) },
41 Mouse => sub { my $x = PlainMouse->new(foo => 23) },
42 ClassAccessorFast => sub { my $x = ClassAccessorFast->new({foo => 23}) },
43}, 'noc');