| line | true | false | branch | 
 
| 27 | 5 | 8 | if (ref $filter eq 'CODE') { } | 
 
|  | 8 | 0 | elsif (ref $filter eq 'ARRAY') { } | 
 
| 31 | 0 | 0 | unless exec @$filter | 
 
| 40 | 4 | 27 | unless @_ >= 4 | 
 
| 46 | 47 | 1 | if ref($filter) =~ /^CODE|ARRAY$/ | 
 
| 56 | 0 | 26 | unless pipe my $child_out, my $in | 
 
| 57 | 0 | 26 | unless pipe my $error_out, my $error_in | 
 
| 62 | 0 | 42 | unless pipe my $out, my $child_in | 
 
| 66 | 0 | 42 | if (not defined $pid) { } | 
 
|  | 13 | 29 | elsif ($pid == 0) { } | 
 
| 70 | 0 | 13 | unless open STDIN, '<&=' . fileno($child_out) | 
 
| 71 | 0 | 13 | unless open STDOUT, '>&=' . fileno($child_in) | 
 
| 72 | 0 | 13 | unless open STDERR, '>&=' . fileno($error_in) | 
 
| 99 | 9 | 4 | if (not defined $_[0]) { } | 
 
|  | 3 | 1 | elsif (ref $_[0] eq 'GLOB') { } | 
 
| 109 | 9 | 4 | if (not defined $_[1]) { } | 
 
|  | 3 | 1 | elsif (ref $_[1] eq 'GLOB') { } | 
 
| 119 | 9 | 4 | if (not defined $_[2]) { } | 
 
|  | 3 | 1 | elsif (ref $_[2] eq 'GLOB') { } | 
 
| 129 | 8 | 5 | wantarray ? : |