Condition Coverage

blib/lib/File/Tabular.pm
Criterion Covered Total %
condition 42 68 61.7


and 3 conditions

line !l l&&!r l&&r condition
302 0 0 0 defined $y and $y < 100
473 235 54 4 $filter and not ref $filter eq 'CODE'
481 252 53 382 $filter and not &$filter($r)
487 0 186 0 $n and $n + 1 > $$self{'autoNum'}
554 6 2 0 wantarray and $args{'orderBy'} || $args{'key'}
557 8 0 0 $args{'orderBy'} and $args{'key'}
563 5 0 3 $filter and not ref $filter eq 'CODE'
738 4 0 2 not $TMP and $self->stat->{'size'} > $$self{'dataStart'}
1151 1 3 3 $$self{'avoidMatchKey'} and not $$subQ{'field'}

or 2 conditions

line l !l condition
351 0 3 $$args{'flockAttempts'} || 0
372 2 1 $$args{'headers'} || [split(/$$self{'rxFieldSep'}/l, $self->_getLine, -1)]
933 7 1 $nRows || 0
942 2 1 $nRows || 0

or 3 conditions

line l !l&&r !l&&!r condition
331 5 19 9 $$args{$option} || {autoNum => 1, autoNumChar => '#', autoNumField => undef, avoidMatchKey => undef, 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 => \undef, rxNum => \undef}->{$option}
342 0 3 0 $$args{'recordSepRepl'} || urlEncode($$self{'recordSep'})
344 0 3 0 $$args{'fieldSepRepl'} || urlEncode($$self{'fieldSep'})
352 0 2 1 $$args{'flockMode'} || $_[0] =~ />|\+
460 66 67 0 $_[0]{'record'} ||= $_[0]{'mkRecord'}($_[0]{'line'})
483 7 298 0 $$r{'record'} ||= $$self{'mkRecord'}($$r{'line'})
554 0 0 2 $args{'orderBy'} || $args{'key'}
1088 2 7 0 $mandatory or $optional
1089 2 7 0 $mandatory || $optional
1129 7 0 0 $s eq '*' || !($$self{'preMatch'} || $$self{'postMatch'}) || $$subQ{'field'}
1185 0 4 0 /^(!)~$/l or /^()=?~$/l