The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Reading database from ...


------------------------------------------ ------ ------ ------ ------ ------
File                                         stmt   bran   cond    sub  total
------------------------------------------ ------ ------ ------ ------ ------
tests/cond_and                               96.0   50.0   50.0  100.0   75.0
Total                                        96.0   50.0   50.0  100.0   75.0
------------------------------------------ ------ ------ ------ ------ ------


Run: ...
Perl version: ...
OS: ...
Start: ...
Finish: ...

tests/cond_and

line  err   stmt   bran   cond    sub   code
1                                       #!/usr/bin/perl
2                                       
3                                       # Copyright 2002-2014, Paul Johnson (paul@pjcj.net)
4                                       
5                                       # This software is free.  It is licensed under the same terms as Perl itself.
6                                       
7                                       # The latest version of this software should be available from my homepage:
8                                       # http://www.pjcj.net
9                                       
10             1                    1   use strict;
               1                        
               1                        
11             1                    1   use warnings;
               1                        
               1                        
12                                      
13             1                        my @x;
14                                      
15             1                        my $y = 1;
16             1                        my $z = 0;
17                                      
18             1                        for (0 .. 10)
19                                      {
20    ***     11     50                   $y &&
21                                          $x[1]++;
22                                      
23    ***     11    100     66            $y &&
24                                          $x[0]++ &&
25                                          $x[1]++;
26                                      
27    ***     11     50                   $x[2]++
28                                          if $z;
29                                      
30            11                          for (0 .. 2)
31                                        {
32            33                              $x[3]++;
33                                        }
34                                      
35    ***     11     50                   if ($y)
36                                        {
37            11                            $x[4]++;
38                                        }
39                                        else
40    ***      0      0                   {
41                                          $y && $x[5]++;
42                                        }
43            11                        
44                                        my $p = $y & $z;
45    ***     11            33          
46    ***     11            33            $p &&= $y;
47            11                          $p &&= $z;
48    ***     11            66            my $q = 1;
49                                        $q &&= $_;
50            11                        
51                                        pas();
52                                      }
53                                      
54                                      sub pas
55    ***     11     50            11   {
56                                          $y && $z
57                                      }
58                                      
59                                      # print join(", ", @x), "\n";


Branches
--------

line  err      %   true  false   branch
----- --- ------ ------ ------   ------
20    ***     50     11      0   if $y
23           100     10      1   if $y and $x[0]++
27    ***     50      0     11   if $z
35    ***     50     11      0   if ($y) { }
40    ***      0      0      0   if $y
55    ***     50     11      0   if $y


Conditions
----------

and 3 conditions

line  err      %     !l  l&&!r   l&&r   expr
----- --- ------ ------ ------ ------   ----
23    ***     66      0      1     10   $y and $x[0]++
45    ***     33     11      0      0   $p &&= $y
46    ***     33     11      0      0   $p &&= $z
48    ***     66      0      1     10   $q &&= $_


Covered Subroutines
-------------------

Subroutine Count Location         
---------- ----- -----------------
BEGIN          1 tests/cond_and:10
BEGIN          1 tests/cond_and:11
pas           11 tests/cond_and:55