Filename | /var/www/foswikidev/core/lib/Foswiki/Query/OP_plus.pm |
Statements | Executed 14 statements in 247µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
3 | 1 | 1 | 33µs | 52µs | new | Foswiki::Query::OP_plus::
1 | 1 | 1 | 13µs | 25µs | BEGIN@11 | Foswiki::Query::OP_plus::
1 | 1 | 1 | 8µs | 12µs | BEGIN@12 | Foswiki::Query::OP_plus::
1 | 1 | 1 | 3µs | 3µs | BEGIN@14 | Foswiki::Query::OP_plus::
0 | 0 | 0 | 0s | 0s | evaluate | Foswiki::Query::OP_plus::
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_plus | ||||
6 | |||||
7 | =cut | ||||
8 | |||||
9 | package Foswiki::Query::OP_plus; | ||||
10 | |||||
11 | 2 | 28µs | 2 | 37µs | # spent 25µs (13+12) within Foswiki::Query::OP_plus::BEGIN@11 which was called:
# once (13µs+12µs) by Foswiki::Query::Parser::BEGIN@52 at line 11 # spent 25µs making 1 call to Foswiki::Query::OP_plus::BEGIN@11
# spent 12µs making 1 call to strict::import |
12 | 2 | 22µs | 2 | 16µs | # spent 12µs (8+4) within Foswiki::Query::OP_plus::BEGIN@12 which was called:
# once (8µs+4µs) by Foswiki::Query::Parser::BEGIN@52 at line 12 # spent 12µs making 1 call to Foswiki::Query::OP_plus::BEGIN@12
# spent 4µs making 1 call to warnings::import |
13 | |||||
14 | 2 | 159µs | 1 | 3µs | # spent 3µs within Foswiki::Query::OP_plus::BEGIN@14 which was called:
# once (3µs+0s) by Foswiki::Query::Parser::BEGIN@52 at line 14 # spent 3µs making 1 call to Foswiki::Query::OP_plus::BEGIN@14 |
15 | 1 | 6µs | our @ISA = ('Foswiki::Query::OP'); | ||
16 | |||||
17 | # spent 52µs (33+19) within Foswiki::Query::OP_plus::new which was called 3 times, avg 17µs/call:
# 3 times (33µs+19µs) by Foswiki::Query::Parser::new at line 112 of /var/www/foswikidev/core/lib/Foswiki/Query/Parser.pm, avg 17µs/call | ||||
18 | 3 | 1µs | my $class = shift; | ||
19 | 3 | 28µs | 3 | 19µs | return $class->SUPER::new( arity => 2, name => '+', prec => 600 ); # spent 19µs making 3 calls to Foswiki::Query::OP::new, avg 6µs/call |
20 | } | ||||
21 | |||||
22 | sub evaluate { | ||||
23 | my $this = shift; | ||||
24 | my $node = shift; | ||||
25 | my $a = $node->{params}[0]->evaluate(@_); | ||||
26 | my $b = $node->{params}[1]->evaluate(@_); | ||||
27 | if ( defined $a | ||||
28 | and Foswiki::Query::OP::isNumber($a) | ||||
29 | and defined $b | ||||
30 | and Foswiki::Query::OP::isNumber($b) ) | ||||
31 | { | ||||
32 | return $a + $b; | ||||
33 | } | ||||
34 | else { | ||||
35 | my $result; | ||||
36 | |||||
37 | if ( defined $a ) { | ||||
38 | if ( defined $b ) { | ||||
39 | $result = $a . $b; | ||||
40 | } | ||||
41 | else { | ||||
42 | $result = $a; | ||||
43 | } | ||||
44 | } | ||||
45 | elsif ( defined $b ) { | ||||
46 | $result = $b; | ||||
47 | } | ||||
48 | |||||
49 | return $result; | ||||
50 | } | ||||
51 | } | ||||
52 | |||||
53 | 1 | 3µs | 1; | ||
54 | __END__ |