Condition Coverage

blib/lib/File/Tabular.pm
Criterion Covered Total %
condition 42 71 59.1


and 3 conditions

line !l l&&!r l&&r condition
304 0 0 0 defined $y and $y < 100
397 0 0 5 $result and $self->{'crlf'}
470 235 122 4 $filter and not ref $filter eq "CODE"
478 252 120 382 $filter and not &$filter($r)
484 0 186 0 $n and $n + 1 > $self->{'autoNum'}
552 7 2 0 wantarray and $args{'orderBy'} || $args{'key'}
555 9 0 0 $args{'orderBy'} and $args{'key'}
560 5 0 4 $filter and not ref $filter eq "CODE"
735 4 0 2 not $TMP and $self->stat->{'size'} > $self->{'dataStart'}
1146 1 3 3 $self->{'avoidMatchKey'} and not $subQ->{'field'}

or 2 conditions

line l !l condition
348 0 3 $args->{'flockAttempts'} || 0
368 2 1 $args->{'headers'} || [split(/$self->{'rxFieldSep'}/l, $self->_getLine, -1)]
930 7 1 $nRows || 0
938 2 1 $nRows || 0

or 3 conditions

line l !l&&r !l&&!r condition
330 5 22 12 $args->{$option} || {autoNum => 1, autoNumChar => '#', autoNumField => undef, avoidMatchKey => undef, crlf => 1, date2str => sub { my($d, $m, $y) = $_[0] =~ /(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)$/l; $y += $y > 50 ? 1900 : 2000 if defined $y and $y < 100; return sprintf('%04d%02d%02d', $y, $m, $d); } , fieldSep => '|', lockAttempts => 0, postMatch => '', preMatch => '', recordSep => "\n", rxDate => \'(?^l:^\\d\\d?\\.\\d\\d?\\.\\d\\d\\d?\\d?$)', rxNum => \'(?^l:^[-+]?\\d+(?:\\.\\d*)?$)'}->{$option}
341 0 3 0 $args->{'recordSepRepl'} || urlEncode($self->{'recordSep'})
342 0 3 0 $args->{'fieldSepRepl'} || urlEncode($self->{'fieldSep'})
349 0 3 0 $args->{'flockMode'} || ($_[0] =~ />|\+
457 66 134 0 $_[0]{'record'} ||= $_[0]{'mkRecord'}->($_[0]{'line'})
480 74 298 0 $r->{'record'} ||= $self->{'mkRecord'}->($r->{'line'})
552 0 0 2 $args{'orderBy'} || $args{'key'}
1083 3 7 0 $mandatory or $optional
1084 3 7 0 $mandatory || $optional
1128 7 0 0 $s eq '*' || !($self->{'preMatch'} || $self->{'postMatch'}) || $subQ->{'field'}
1180 0 5 0 /^(!)~$/l or /^()=?~$/l