| Filename | /home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/5.22.0/if.pm |
| Statements | Executed 24 statements in 39µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 2 | 1 | 1 | 21µs | 26µs | if::work |
| 2 | 2 | 1 | 3µs | 3µs | if::import |
| 2 | 1 | 1 | 2µs | 2µs | if::CORE:subst (opcode) |
| 0 | 0 | 0 | 0s | 0s | if::unimport |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package if; | ||||
| 2 | |||||
| 3 | 1 | 300ns | $VERSION = '0.0604'; | ||
| 4 | |||||
| 5 | # spent 26µs (21+4) within if::work which was called 2 times, avg 13µs/call:
# 2 times (21µs+4µs) by Moose::Object::BEGIN@15 or Moose::Object::BEGIN@16 at line 18, avg 13µs/call | ||||
| 6 | 2 | 700ns | my $method = shift() ? 'import' : 'unimport'; | ||
| 7 | 2 | 600ns | die "Too few arguments to 'use if' (some code returning an empty list in list context?)" | ||
| 8 | unless @_ >= 2; | ||||
| 9 | 2 | 200ns | return unless shift; # CONDITION | ||
| 10 | |||||
| 11 | 2 | 300ns | my $p = $_[0]; # PACKAGE | ||
| 12 | 2 | 6µs | 2 | 2µs | (my $file = "$p.pm") =~ s!::!/!g; # spent 2µs making 2 calls to if::CORE:subst, avg 850ns/call |
| 13 | 2 | 3µs | require $file; # Works even if $_[0] is a keyword (like open) | ||
| 14 | 2 | 13µs | 2 | 3µs | my $m = $p->can($method); # spent 3µs making 2 calls to UNIVERSAL::can, avg 1µs/call |
| 15 | 2 | 5µs | 1 | 6.06ms | goto &$m if $m; # spent 6.06ms making 1 call to metaclass::import |
| 16 | } | ||||
| 17 | |||||
| 18 | 6 | 8µs | 2 | 26µs | # spent 3µs within if::import which was called 2 times, avg 2µs/call:
# once (2µs+0s) by Moose::Object::BEGIN@15 at line 15 of Moose/Object.pm
# once (1µs+0s) by Moose::Object::BEGIN@16 at line 16 of Moose/Object.pm # spent 26µs making 2 calls to if::work, avg 13µs/call |
| 19 | sub unimport { shift; unshift @_, 0; goto &work } | ||||
| 20 | |||||
| 21 | 1 | 2µs | 1; | ||
| 22 | __END__ | ||||
# spent 2µs within if::CORE:subst which was called 2 times, avg 850ns/call:
# 2 times (2µs+0s) by if::work at line 12, avg 850ns/call |