| Filename | /home/doy/perl5/perlbrew/perls/perl-5.10.1/lib/site_perl/5.10.1/x86_64-linux/Moose/Meta/Class/Immutable/Trait.pm |
| Statements | Executed 19 statements in 1.41ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 81µs | 99µs | Moose::Meta::Class::Immutable::Trait::BEGIN@3 |
| 1 | 1 | 1 | 69µs | 140µs | Moose::Meta::Class::Immutable::Trait::BEGIN@4 |
| 1 | 1 | 1 | 44µs | 408µs | Moose::Meta::Class::Immutable::Trait::BEGIN@13 |
| 1 | 1 | 1 | 36µs | 200µs | Moose::Meta::Class::Immutable::Trait::BEGIN@7 |
| 1 | 1 | 1 | 23µs | 23µs | Moose::Meta::Class::Immutable::Trait::BEGIN@6 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::add_role |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::calculate_all_roles |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::calculate_all_roles_with_inheritance |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Class::Immutable::Trait::does_role |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Moose::Meta::Class::Immutable::Trait; | ||||
| 2 | |||||
| 3 | 3 | 100µs | 2 | 117µs | # spent 99µs (81+18) within Moose::Meta::Class::Immutable::Trait::BEGIN@3 which was called:
# once (81µs+18µs) by Moose::Meta::Class::BEGIN@22 at line 3 # spent 99µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@3
# spent 18µs making 1 call to strict::import |
| 4 | 3 | 131µs | 2 | 210µs | # spent 140µs (69+71) within Moose::Meta::Class::Immutable::Trait::BEGIN@4 which was called:
# once (69µs+71µs) by Moose::Meta::Class::BEGIN@22 at line 4 # spent 140µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@4
# spent 71µs making 1 call to warnings::import |
| 5 | |||||
| 6 | 3 | 94µs | 1 | 23µs | # spent 23µs within Moose::Meta::Class::Immutable::Trait::BEGIN@6 which was called:
# once (23µs+0s) by Moose::Meta::Class::BEGIN@22 at line 6 # spent 23µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@6 |
| 7 | 3 | 229µs | 2 | 364µs | # spent 200µs (36+164) within Moose::Meta::Class::Immutable::Trait::BEGIN@7 which was called:
# once (36µs+164µs) by Moose::Meta::Class::BEGIN@22 at line 7 # spent 200µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@7
# spent 164µs making 1 call to Exporter::import |
| 8 | |||||
| 9 | 1 | 4µs | our $VERSION = '1.19'; | ||
| 10 | 1 | 61µs | $VERSION = eval $VERSION; # spent 11µs executing statements in string eval | ||
| 11 | 1 | 3µs | our $AUTHORITY = 'cpan:STEVAN'; | ||
| 12 | |||||
| 13 | 3 | 781µs | 2 | 773µs | # spent 408µs (44+364) within Moose::Meta::Class::Immutable::Trait::BEGIN@13 which was called:
# once (44µs+364µs) by Moose::Meta::Class::BEGIN@22 at line 13 # spent 408µs making 1 call to Moose::Meta::Class::Immutable::Trait::BEGIN@13
# spent 364µs making 1 call to base::import |
| 14 | |||||
| 15 | sub add_role { $_[1]->_immutable_cannot_call } | ||||
| 16 | |||||
| 17 | sub calculate_all_roles { | ||||
| 18 | my $orig = shift; | ||||
| 19 | my $self = shift; | ||||
| 20 | @{ $self->{__immutable}{calculate_all_roles} ||= [ $self->$orig ] }; | ||||
| 21 | } | ||||
| 22 | |||||
| 23 | sub calculate_all_roles_with_inheritance { | ||||
| 24 | my $orig = shift; | ||||
| 25 | my $self = shift; | ||||
| 26 | @{ $self->{__immutable}{calculate_all_roles_with_inheritance} ||= [ $self->$orig ] }; | ||||
| 27 | } | ||||
| 28 | |||||
| 29 | sub does_role { | ||||
| 30 | shift; | ||||
| 31 | my $self = shift; | ||||
| 32 | my $role = shift; | ||||
| 33 | |||||
| 34 | (defined $role) | ||||
| 35 | || $self->throw_error("You must supply a role name to look for"); | ||||
| 36 | |||||
| 37 | $self->{__immutable}{does_role} ||= { map { $_->name => 1 } $self->calculate_all_roles_with_inheritance }; | ||||
| 38 | |||||
| 39 | my $name = blessed $role ? $role->name : $role; | ||||
| 40 | |||||
| 41 | return $self->{__immutable}{does_role}{$name}; | ||||
| 42 | } | ||||
| 43 | |||||
| 44 | 1 | 11µs | 1; | ||
| 45 | |||||
| 46 | __END__ |