Filename | /var/www/foswiki11/lib/Foswiki/Query/OP_length.pm |
Statements | Executed 14 statements in 337µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
3 | 1 | 1 | 51µs | 100µs | new | Foswiki::Query::OP_length::
1 | 1 | 1 | 20µs | 43µs | BEGIN@11 | Foswiki::Query::OP_length::
1 | 1 | 1 | 13µs | 21µs | BEGIN@12 | Foswiki::Query::OP_length::
1 | 1 | 1 | 5µs | 5µs | BEGIN@14 | Foswiki::Query::OP_length::
0 | 0 | 0 | 0s | 0s | evaluate | Foswiki::Query::OP_length::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # See bottom of file for license and copyright information | ||||
2 | |||||
3 | =begin TML | ||||
4 | |||||
5 | ---+ package Foswiki::Query::OP_length | ||||
6 | |||||
7 | =cut | ||||
8 | |||||
9 | package Foswiki::Query::OP_length; | ||||
10 | |||||
11 | 2 | 41µs | 2 | 66µs | # spent 43µs (20+23) within Foswiki::Query::OP_length::BEGIN@11 which was called:
# once (20µs+23µs) by Foswiki::Query::Parser::new at line 11 # spent 43µs making 1 call to Foswiki::Query::OP_length::BEGIN@11
# spent 23µs making 1 call to strict::import |
12 | 2 | 36µs | 2 | 28µs | # spent 21µs (13+8) within Foswiki::Query::OP_length::BEGIN@12 which was called:
# once (13µs+8µs) by Foswiki::Query::Parser::new at line 12 # spent 21µs making 1 call to Foswiki::Query::OP_length::BEGIN@12
# spent 8µs making 1 call to warnings::import |
13 | |||||
14 | 2 | 201µs | 1 | 5µs | # spent 5µs within Foswiki::Query::OP_length::BEGIN@14 which was called:
# once (5µs+0s) by Foswiki::Query::Parser::new at line 14 # spent 5µs making 1 call to Foswiki::Query::OP_length::BEGIN@14 |
15 | 1 | 10µs | our @ISA = ('Foswiki::Query::UnaryOP'); | ||
16 | |||||
17 | # spent 100µs (51+49) within Foswiki::Query::OP_length::new which was called 3 times, avg 33µs/call:
# 3 times (51µs+49µs) by Foswiki::Query::Parser::new at line 47 of /var/www/foswiki11/lib/Foswiki/Query/Parser.pm, avg 33µs/call | ||||
18 | 3 | 2µs | my $class = shift; | ||
19 | 3 | 43µs | 3 | 49µs | return $class->SUPER::new( name => 'length', prec => 600 ); # spent 49µs making 3 calls to Foswiki::Query::UnaryOP::new, avg 16µs/call |
20 | } | ||||
21 | |||||
22 | sub evaluate { | ||||
23 | my $this = shift; | ||||
24 | my $node = shift; | ||||
25 | my $a = $node->{params}[0]; | ||||
26 | my $val = $a->evaluate(@_) || ''; | ||||
27 | return 0 unless defined $val; | ||||
28 | if ( ref($val) eq 'ARRAY' ) { | ||||
29 | return scalar(@$val); | ||||
30 | } | ||||
31 | elsif ( ref($val) eq 'HASH' ) { | ||||
32 | return scalar( keys %$val ); | ||||
33 | } | ||||
34 | elsif ( !ref($val) ) { | ||||
35 | return length($val); | ||||
36 | } | ||||
37 | return 1; | ||||
38 | } | ||||
39 | |||||
40 | 1 | 4µs | 1; | ||
41 | __END__ |