| 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/splice.pm |
| Statements | Executed 17 statements in 1.54ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 80µs | 98µs | Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@3 |
| 1 | 1 | 1 | 47µs | 904µs | Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@60 |
| 1 | 1 | 1 | 44µs | 14.8ms | Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@10 |
| 1 | 1 | 1 | 42µs | 112µs | Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@4 |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_adds_members |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_inline_check_arguments |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_inline_optimized_set_new_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_inline_process_arguments |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_minimum_arguments |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_potential_value |
| 0 | 0 | 0 | 0s | 0s | Moose::Meta::Method::Accessor::Native::Array::splice::_return_value |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Moose::Meta::Method::Accessor::Native::Array::splice; | ||||
| 2 | |||||
| 3 | 3 | 107µs | 2 | 117µs | # spent 98µs (80+18) within Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@3 which was called:
# once (80µs+18µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@28 at line 3 # spent 98µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@3
# spent 18µs making 1 call to strict::import |
| 4 | 3 | 238µs | 2 | 181µs | # spent 112µs (42+70) within Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@4 which was called:
# once (42µs+70µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@28 at line 4 # spent 112µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@4
# spent 70µs making 1 call to warnings::import |
| 5 | |||||
| 6 | 1 | 5µs | our $VERSION = '1.19'; | ||
| 7 | 1 | 86µs | $VERSION = eval $VERSION; # spent 36µs executing statements in string eval | ||
| 8 | 1 | 4µs | our $AUTHORITY = 'cpan:STEVAN'; | ||
| 9 | |||||
| 10 | 3 | 880µs | 2 | 29.5ms | # spent 14.8ms (44µs+14.7) within Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@10 which was called:
# once (44µs+14.7ms) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@28 at line 10 # spent 14.8ms making 1 call to Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@10
# spent 14.7ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:456] |
| 11 | |||||
| 12 | 1 | 38µs | 1 | 45.1ms | with 'Moose::Meta::Method::Accessor::Native::Array::Writer' => { # spent 45.1ms making 1 call to Moose::Role::with |
| 13 | -excludes => [ | ||||
| 14 | qw( | ||||
| 15 | _minimum_arguments | ||||
| 16 | _inline_process_arguments | ||||
| 17 | _inline_check_arguments | ||||
| 18 | _inline_optimized_set_new_value | ||||
| 19 | _return_value | ||||
| 20 | ) | ||||
| 21 | ] | ||||
| 22 | }; | ||||
| 23 | |||||
| 24 | sub _minimum_arguments { 1 } | ||||
| 25 | |||||
| 26 | sub _adds_members { 1 } | ||||
| 27 | |||||
| 28 | sub _inline_process_arguments { | ||||
| 29 | return 'my $idx = shift;' . "\n" . 'my $len = @_ ? shift : undef;'; | ||||
| 30 | } | ||||
| 31 | |||||
| 32 | sub _inline_check_arguments { | ||||
| 33 | my $self = shift; | ||||
| 34 | |||||
| 35 | return | ||||
| 36 | $self->_inline_check_var_is_valid_index('$idx') . "\n" | ||||
| 37 | . $self->_inline_throw_error(q{'The length argument passed to splice must be an integer'}) | ||||
| 38 | . ' if defined $len && $len !~ /^-?\\d+$/;'; | ||||
| 39 | } | ||||
| 40 | |||||
| 41 | sub _potential_value { | ||||
| 42 | my ( $self, $slot_access ) = @_; | ||||
| 43 | |||||
| 44 | return "( do { my \@potential = \@{ ($slot_access) };" | ||||
| 45 | . '@return = defined $len ? ( splice @potential, $idx, $len, @_ ) : ( splice @potential, $idx ); \\@potential } )'; | ||||
| 46 | } | ||||
| 47 | |||||
| 48 | sub _inline_optimized_set_new_value { | ||||
| 49 | my ( $self, $inv, $new, $slot_access ) = @_; | ||||
| 50 | |||||
| 51 | return "\@return = defined \$len ? ( splice \@{ ($slot_access) }, \$idx, \$len, \@_ ) : ( splice \@{ ($slot_access) }, \$idx )"; | ||||
| 52 | } | ||||
| 53 | |||||
| 54 | sub _return_value { | ||||
| 55 | my ($self, $slot_access) = @_; | ||||
| 56 | |||||
| 57 | return 'return wantarray ? @return : $return[-1]'; | ||||
| 58 | } | ||||
| 59 | |||||
| 60 | 3 | 133µs | 2 | 1.76ms | # spent 904µs (47+857) within Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@60 which was called:
# once (47µs+857µs) by Moose::Meta::Attribute::Native::Trait::Array::BEGIN@28 at line 60 # spent 904µs making 1 call to Moose::Meta::Method::Accessor::Native::Array::splice::BEGIN@60
# spent 857µs making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:557] |
| 61 | |||||
| 62 | 1 | 49µs | 1; |