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