| Filename | /home/doy/perl5/perlbrew/perls/perl-5.10.1/lib/site_perl/5.10.1/x86_64-linux/Moose/Meta/Method/Accessor/Native/Array/insert.pm |
| Statements | Executed 18 statements in 1.76ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 80µs | 99µs | Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@3 |
| 1 | 1 | 1 | 48µs | 785µs | Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@64 |
| 1 | 1 | 1 | 45µs | 14.7ms | Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@10 |
| 1 | 1 | 1 | 43µs | 112µs | Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@4 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::__ANON__[:48] |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_adds_members |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_inline_optimized_set_new_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_maximum_arguments |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_minimum_arguments |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_new_members |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_potential_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::insert::_return_value |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Moose::Meta::Method::Accessor::Native::Array::insert; | ||||
| 2 | |||||
| 3 | 3 | 125µs | 2 | 117µs | # spent 99µs (80+18) within Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@3 which was called:
# once (80µs+18µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@17 at line 3 # spent 99µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@3
# spent 18µs making 1 call to strict::import |
| 4 | 3 | 244µs | 2 | 182µs | # spent 112µs (43+70) within Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@4 which was called:
# once (43µs+70µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@17 at line 4 # spent 112µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@4
# spent 70µs making 1 call to warnings::import |
| 5 | |||||
| 6 | 1 | 5µs | our $VERSION = '1.19'; | ||
| 7 | 1 | 68µs | $VERSION = eval $VERSION; # spent 10µs executing statements in string eval | ||
| 8 | 1 | 3µs | our $AUTHORITY = 'cpan:STEVAN'; | ||
| 9 | |||||
| 10 | 3 | 1.05ms | 2 | 29.3ms | # spent 14.7ms (45µs+14.6) within Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@10 which was called:
# once (45µs+14.6ms) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@17 at line 10 # spent 14.7ms making 1 call to Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@10
# spent 14.6ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:456] |
| 11 | |||||
| 12 | 1 | 35µs | 1 | 44.5ms | with 'Moose::Meta::Method::Accessor::Native::Array::Writer' => { # spent 44.5ms making 1 call to Moose::Role::with |
| 13 | -excludes => [ | ||||
| 14 | qw( | ||||
| 15 | _minimum_arguments | ||||
| 16 | _maximum_arguments | ||||
| 17 | _new_members | ||||
| 18 | _inline_optimized_set_new_value | ||||
| 19 | _return_value | ||||
| 20 | ) | ||||
| 21 | ] | ||||
| 22 | }; | ||||
| 23 | |||||
| 24 | sub _minimum_arguments { 2 } | ||||
| 25 | |||||
| 26 | sub _maximum_arguments { 2 } | ||||
| 27 | |||||
| 28 | sub _adds_members { 1 } | ||||
| 29 | |||||
| 30 | sub _potential_value { | ||||
| 31 | my ( $self, $slot_access ) = @_; | ||||
| 32 | |||||
| 33 | return | ||||
| 34 | "( do { my \@potential = \@{ ($slot_access) }; splice \@potential, \$_[0], 0, \$_[1]; \\\@potential } )"; | ||||
| 35 | } | ||||
| 36 | |||||
| 37 | # We need to override this because while @_ can be written to, we cannot write | ||||
| 38 | # directly to $_[1]. | ||||
| 39 | around _inline_coerce_new_values => sub { | ||||
| 40 | shift; | ||||
| 41 | my $self = shift; | ||||
| 42 | |||||
| 43 | return q{} unless $self->associated_attribute->should_coerce; | ||||
| 44 | |||||
| 45 | return q{} unless $self->_tc_member_type_can_coerce; | ||||
| 46 | |||||
| 47 | return '@_ = ( $_[0], $member_tc_obj->coerce( $_[1] ) );'; | ||||
| 48 | 1 | 24µs | 1 | 298µs | }; # spent 298µs making 1 call to Moose::Role::around |
| 49 | |||||
| 50 | sub _new_members { '$_[1]' } | ||||
| 51 | |||||
| 52 | sub _inline_optimized_set_new_value { | ||||
| 53 | my ( $self, $inv, $new, $slot_access ) = @_; | ||||
| 54 | |||||
| 55 | return "splice \@{ ($slot_access) }, \$_[0], 0, \$_[1];"; | ||||
| 56 | } | ||||
| 57 | |||||
| 58 | sub _return_value { | ||||
| 59 | my ( $self, $slot_access ) = @_; | ||||
| 60 | |||||
| 61 | return "return ${slot_access}->[ \$_[0] ];"; | ||||
| 62 | } | ||||
| 63 | |||||
| 64 | 3 | 141µs | 2 | 1.52ms | # spent 785µs (48+737) within Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@64 which was called:
# once (48µs+737µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@17 at line 64 # spent 785µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::insert::BEGIN@64
# spent 737µs making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:557] |
| 65 | |||||
| 66 | 1 | 57µs | 1; |