Condition Coverage

blib/lib/Text/CSV_PP.pm
Criterion Covered Total %
condition 718 880 81.4


and 3 conditions

line !l l&&!r l&&r condition
242 3563 3 2 defined $quo and length $quo
245 2 3324 242 defined $quo and $quo =~ /^[ \t]/
246 4 3032 290 defined $esc and $esc =~ /^[ \t]/
256 11831 393 35 defined $sep and length $sep
258 12227 14 18 defined $quo and length $quo
296 88 788 8 @_ > 0 and ref $_[0] ne 'HASH'
319 1 6 1930 /^[a-z]/ and exists $def_attr{$_}
321 21 1713 196 defined $attr{$_} and /_char$/
339 844 4 21 $quote_aliased and defined $attr{'quote_char'}
356 573 255 6 defined $self->{'callbacks'} and ref $self->{'callbacks'} ne 'HASH'
362 824 2 8 defined $\ and not exists $attr{'eol'}
476 6 6 6 defined $quote && length $quote
521 5 303 21 defined $sep && length $sep
598 0 13 89 $self and $f
13 81 8 $self and $f and ref $f
94 2 6 $self and $f and ref $f and ref $f eq 'CODE'
771 26 4 8 @_ == 1 && ref $_[0] eq 'HASH'
777 4 10 21 $cbk =~ /^[\w.]+$/ and ref $cb->{$cbk} eq 'CODE'
804 66 3 1611 $self and ref $self
69 1 1610 $self and ref $self and UNIVERSAL::isa($self, 'Text::CSV_PP')
4 105 1505 $self and ref $self and UNIVERSAL::isa($self, 'Text::CSV_PP') and exists $self->{'_ERROR_DIAG'}
813 5 1266 234 $diag[0] and $self->{'callbacks'}
1266 231 3 $diag[0] and $self->{'callbacks'} and $self->{'callbacks'}{'error'}
819 8 233 16 $diag[0] and $diag[0] != 2012
823 3 1 12 $self and ref $self
830 10 0 2 $self->{'diag_verbose'} and $self->{'_ERROR_INPUT'}
836 1 8 0 @c >= 11 and $c[10]
8 0 0 @c >= 11 and $c[10] and ref $c[10] eq 'HASH'
840 0 0 0 exists $hints->{'autodie'} and $hints->{'autodie'}
0 0 0 exists $hints->{'guard Fatal'} and not exists $hints->{'no Fatal'}
914 1 1 1397 @fields > 0 && $self->__combine(\$str, \@fields, 0)
931 6 201 1742 defined $str and $self->__parse($fields, $fflags, $str, 0)
948 287 205 138 @columns == 1 and not defined $columns[0]
950 287 9 196 @columns == 1 and ref $columns[0] eq 'ARRAY'
957 485 1 1 $self->{'_BOUND_COLUMNS'} and @columns != @{$self->{'_BOUND_COLUMNS'};}
984 302 0 1 defined $args{'munge'} and not defined $args{'munge_column_names'}
1005 2 0 296 defined $hdr and $hdr ne ''
1035 144 0 0 $ebcdic and $enc eq 'utf-ebcdic'
1053 0 288 1 $hdr and $hdr =~ s/\Asep=(\S)([\r\n]+)//i
1108 11 7 5 @refs == 1 and not defined $refs[0]
1110 15 2 1 $self->{'_COLUMN_NAMES'} and @refs != @{$self->{'_COLUMN_NAMES'};}
1131 2 1 2 @$fr == 1 and !defined($fr->[0]) || $fr->[0] eq ''
1154 0 12 1 @f == 1 && !defined($f[0])
1173 1 19 38 defined $spec and $spec =~ /^ \s* \x23 ? \s* # optional leading # ( row | col | cell ) \s* = ( $qc # for row and col | $qd , $qd (?: - $qs , $qs)? # for cell (ranges) (?: ; $qd , $qd (?: - $qs , $qs)? )* # and cell (range) lists ) \s* $/xi
1195 3 27 2 $brr ne '*' and $brr == 0 || $brr < $tlr
2 26 2 $brc ne '*' and $brc == 0 || $brc < $tlc
1214 6 39 15 $brr ne '*' and $r > $brr
1224 6 17 10 $max_row ne '*' and $r == $max_row
1248 28 33 3 $r > $#r and $eod
1270 269 0 4 @_ == 1 && ref $_[0] eq 'HASH'
1285 244 26 0 exists $attr{'out'} && !$attr{'out'}
1289 0 242 28 $in and $out
242 23 5 $in and $out and not ref $in
265 4 1 $in and $out and not ref $in and not ref $out
1294 8 14 5 ref $out and 'ARRAY' eq ref $out || 'HASH' eq ref $out
8 2 12 ref $out and 'SCALAR' ne ref $out
7 0 2 ref $out and 'SCALAR' eq ref $out
7 0 2 ref $out and 'SCALAR' eq ref $out and defined $$out
0 1 1 ref $out and 'SCALAR' eq ref $out and defined $$out and $$out eq 'skip'
1331 14 2 0 not ref $in and $] < 5.008005
1374 791 1 6 exists $attr{$f} and not exists $attr{$t}
1379 0 2 0 defined $_[1][0] and $_[1][0] ne ''
1384 250 13 3 defined $fltr and not ref $fltr
263 0 3 defined $fltr and not ref $fltr and exists $fltr{$fltr}
1422 1 264 9 @_ and ref $_[0] eq 'Text::CSV_PP' || ref $_[0] eq 'Text::CSV'
1434 241 6 19 $c->{'out'} and not $c->{'sink'}
1497 4 3 5 ref $key eq 'ARRAY' and @$key > 1
1503 2 1 2 ref $val eq 'ARRAY' and @$val > 0
1506 215 11 5 $c->{'fltr'} and grep /\D/, keys %{$$c{'fltr'};}
1530 186 0 6 $c->{'kh'} and $hdrs
1589 81 0 148 @row1 and not $c->{'hd_c'}
81 144 4 @row1 and not $c->{'hd_c'} and not ref $hdrs
1595 0 211 18 $ref and $c->{'cbai'} || $c->{'cboi'}
1608 5 0 1 $ro eq 'SCALAR' and ${$c->{'out'};} eq 'skip'
1615 0 0 4 @{$c->{'out'};} and @$ref
0 2 2 @{$c->{'out'};} and @$ref and ref $c->{'out'}[0] eq ref $ref->[0]
1662 576 194 5 defined $self->{'sep'} and $self->{'sep'} ne ''
1672 4 0 771 defined $quote_char and length $quote_char
1678 770 1 4 defined $self->{'quote'} and $self->{'quote'} ne ''
1688 6 2 767 defined $escape_char and length $escape_char
1700 671 58 42 $eol_len == 1 and $eol eq "\r"
1728 246 0 9 defined $cb->{'after_parse'} and ref $cb->{'after_parse'} eq 'CODE'
1731 254 0 1 defined $cb->{'before_print'} and ref $cb->{'before_print'} eq 'CODE'
1762 14 0 75 $bound and ref $bound eq 'ARRAY'
1776 27592 0 54 $ctx->{'sep_len'} and $ctx->{'sep_len'} > 1
27592 40 14 $ctx->{'sep_len'} and $ctx->{'sep_len'} > 1 and _is_valid_utf8($ctx->{'sep'})
1779 27618 0 28 $ctx->{'quo_len'} and $ctx->{'quo_len'} > 1
27618 28 0 $ctx->{'quo_len'} and $ctx->{'quo_len'} > 1 and _is_valid_utf8($ctx->{'quo'})
1868 0 0 1 $cache->{'sep_len'} and $cache->{'sep_len'} > 1
1872 0 0 1 $cache->{'quo_len'} and $cache->{'quo_len'} > 1
1922 36 0 125 $cb and ref $cb eq 'CODE'
1926 61 0 64 ref $res[0] eq 'SCALAR' and ${$res[0];} eq 'skip'
1945 0 2 21668 $esc ne '' and $esc ne "\000"
1955 21664 1 5 $n < 0 and $ctx->{'is_bound'}
1960 21668 0 2 $ctx->{'keep_meta_info'} >= 10 && @{[] unless $self->{'_FFLAGS'};} >= $n
1990 53795 6 10 substr($value, 0, 1) eq '=' and $ctx->{'formula'}
2000 1393 3 2 $check_meta and $self->is_quoted($i)
2009 52391 7 5 $check_meta and $self->is_quoted($i)
2011 5636 6 46761 not $must_be_quoted and $quot ne ''
2018 0 762 45042 $sep ne '' and $sep ne "\000"
762 44717 325 $sep ne '' and $sep ne "\000" and $value =~ /\Q$sep\E/
0 2 45477 $esc ne '' and $esc ne "\000"
2 45157 320 $esc ne '' and $esc ne "\000" and $value =~ /\Q$esc\E/
6 24829 20324 $ctx->{'quote_binary'} and $value =~ /[\x00-\x1f\x7f-\xa0]/
24 23576 1235 $ctx->{'quote_space'} and $value =~ /[\x09\x20]/
2021 52018 378 7 not $ctx->{'binary'} and $value =~ /[^\x09\x20-\x7E]/
2061 5 0 1 ref $column_names eq 'ARRAY' and @$column_names >= $i - 1
2117 340 3114 5 $state and ($ctx->{'has_hooks'} || 0) & 2
2132 2194 0 175 $ctx->{'has_ahead'} and defined $self->{'_AHEAD'}
2163 0 2267 100 defined $ctx->{'tmp'} and $ctx->{'used'} < $ctx->{'size'}
2267 63 37 defined $ctx->{'tmp'} and $ctx->{'used'} < $ctx->{'size'} and $ctx->{'has_ahead'}
2184 599 3706 2 $result and $ctx->{'types'}
2186 2 0 8 $i <= $len and $i <= $ctx->{'types_len'}
2206 22 4264 30 not $ctx->{'utf8'} and $ctx->{'sep_len'}
2207 22 4276 18 not $ctx->{'utf8'} and $ctx->{'quo_len'}
2208 22 3238 1056 not $ctx->{'utf8'} and $ctx->{'eol_len'}
2226 22222 51337 623 not $waitingForField and $c eq ''
73559 321 302 not $waitingForField and $c eq '' and $hit ne ''
51658 8 294 not $waitingForField and $c eq '' and $hit ne '' and $ctx->{'useIO'}
8 147 147 not $waitingForField and $c eq '' and $hit ne '' and $ctx->{'useIO'} and not $ctx->{'useIO'} & 16
2232 4013 43257 26765 $seenSomething and $hit eq ''
47270 26413 352 $seenSomething and $hit eq '' and $c eq ''
2251 0 28442 45237 defined $hit and $hit ne ''
2253 7505 1983 0 not $spl and $ctx->{'comment_str'}
1983 0 0 not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A\Q$ctx->{'comment_str'}\E/
2266 10 0 74285 defined $c and defined $sep
10 62902 11383 defined $c and defined $sep and $c eq $sep
10 0 62902 defined $c and defined $quot
10 139 62763 defined $c and defined $quot and $quot ne "\000"
139 39868 22895 defined $c and defined $quot and $quot ne "\000" and $c eq $quot
10 16 39991 defined $c and defined $esc
26 139 39852 defined $c and defined $esc and $esc ne "\000"
155 35197 4655 defined $c and defined $esc and $esc ne "\000" and $c eq $esc
10 35352 0 defined $c and $c eq "\n" || $c eq '' || defined $eol && $c eq $eol && $eol ne "\r"
10 31989 1015 defined $c and $c eq "\r"
31999 3 1012 defined $c and $c eq "\r" and not $ctx->{'verbatim'}
2279 1169 0 8 $ctx->{'keep_meta_info'} and $fflags
2312 0 1 0 defined $esc && $c2 eq $esc
89 0 1 $ctx->{'allow_loose_quotes'} and not defined $esc && $c2 eq $esc
2327 0 0 10607 defined $c2 and defined $sep
0 1593 9014 defined $c2 and defined $sep and $c2 eq $sep
2335 0 1418 175 defined $c2 and $c2 eq "\n" || defined $eol && $c2 eq $eol
2342 8 13 1261 defined $esc and $c eq $esc
2344 0 1210 51 defined $c2 and $c2 eq '0'
2350 0 0 1210 defined $c2 and defined $quot
0 133 1077 defined $c2 and defined $quot and $c2 eq $quot
2359 128 0 5 $ctx->{'allow_loose_escapes'} and defined $c2
128 1 4 $ctx->{'allow_loose_escapes'} and defined $c2 and $c2 ne "\r"
2367 0 57 93 defined $c2 and $c2 eq "\r"
2376 5 9 79 defined $c3 and $c3 eq "\n"
2383 13 0 1 $ctx->{'useIO'} and not $ctx->{'eol_len'}
2406 45 2 10 $ctx->{'allow_loose_quotes'} and not $quoesc
2448 0 2 0 defined $quot and $c2 eq $quot
0 0 2 defined $sep and $c2 eq $sep
0 0 0 defined $esc and $c2 eq $esc
2474 0 2196 2411 defined $quot and $c2 eq $quot
0 2193 3 defined $sep and $c2 eq $sep
0 28 2165 defined $esc and $c2 eq $esc
2509 2466 108 162 $fnum == 1 and $ctx->{'flag'} == 0
2574 102 60 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq ''
102 37 23 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'}
2531 197 0 14 $ctx->{'keep_meta_info'} and $fflags
2554 6 2 2 $ctx->{'eol'} eq $c and $ctx->{'useIO'}
2559 1303 402 19 not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1
1705 3 16 not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1 and $ctx->{'useIO'}
3 12 4 not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1 and $ctx->{'useIO'} and $hit =~ /^sep=(.{1,16})$/i
2599 5 0 5 $ctx->{'useIO'} and not $ctx->{'eol_len'}
2614 1 0 1 $fnum == 1 and $ctx->{'flag'} == 0
1 0 1 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq ''
0 0 1 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'}
2654 5 11 130 defined $c2 and $c2 eq "\n"
2660 5 0 11 $ctx->{'useIO'} and not $ctx->{'eol_len'}
2672 5 0 0 $fnum == 1 and $ctx->{'flag'} == 0
5 0 0 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq ''
0 0 0 $fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'}
2694 31254 748 0 $ctx->{'eolx'} and $c eq $eol
2700 411 163 0 not $spl and $ctx->{'comment_str'}
163 0 0 not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A$ctx->{'comment_str'}/
2704 230 113 231 $ctx->{'allow_whitespace'} and $self->__is_whitespace($ctx, $c)
2725 39 372 3 $ctx->{'useIO'} and not defined $c
2735 40876 7800 12 $ctx->{'useIO'} and $ctx->{'verbatim'}
7800 9 3 $ctx->{'useIO'} and $ctx->{'verbatim'} and $ctx->{'used'} == $ctx->{'size'}
2762 29 0 3 $ctx->{'keep_meta_info'} and $fflags
2784 2194 1862 2118 defined $ctx->{'tmp'} and $ctx->{'used'} <= 0
2902 0 724 0 (!defined($ctx->{'sep'}) || $c ne $ctx->{'sep'}) && (!defined($ctx->{'quo'}) || $c ne $ctx->{'quo'}) && (!defined($ctx->{'escape_char'}) || $c ne $ctx->{'escape_char'}) && ($c eq ' ' || $c eq "\t")
2910 20369 0 134 $ctx->{'formula'} and $$v_ref
20369 107 27 $ctx->{'formula'} and $$v_ref and substr($$v_ref, 0, 1) eq '='
2915 19720 744 12 !defined($$v_ref) || $$v_ref eq '' and $ctx->{'empty_is_undef'} || !($flag & 1) && $ctx->{'blank_is_undef'}
2921 14727 4012 1725 $ctx->{'allow_whitespace'} and not $flag & 1
2924 16782 0 3682 $flag & 2 and $ctx->{'decode_utf8'}
0 1630 2052 $flag & 2 and $ctx->{'decode_utf8'} and $ctx->{'utf8'} || _is_valid_utf8($$v_ref)
2931 20388 0 88 $ctx->{'keep_meta_info'} and $fflags
2967 36 529 12 $n++ >= $tail and $tail
2980 446 36 32 defined $len and $n >= $len
482 20 12 defined $len and $n >= $len and $offset >= 0
2983 247 16 8 defined $len and $n > $len
3022 2 6 0 $self and (&Scalar::Util::reftype($self) || '') eq 'HASH' || ref($self) =~ /^Text::CSV/

or 2 conditions

line l !l condition
297 788 88 shift() || {}
609 7 0 $self ||= 'Text::CSV_PP'
1131 0 2 $self->{'_FFLAGS'}[0] ||= 16
1244 28 27 $_ ||= 0
1274 44 228 delete $attr{'enc'} || delete $attr{'encoding'} || ''
1287 19 1 $out ||= \*STDOUT
1444 1 1 $hdrs ||= [map({$_ unless $hdr{$_};} keys %$row)]
1487 0 144 $hdrs ||= \@hdr
1492 3 3 $hdrs ||= 'auto'
1498 7 13 $hdrs ||= 'auto'
1506 2 3 $hdrs ||= 'auto'
2117 5 3114 $ctx->{'has_hooks'} || 0
2951 20 251 $offset ||= 0
2971 120 457 $ctx->{'has_hooks'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
295 0 884 1 ref $proto || $proto
635 1 1 9 not defined $v or $v eq ''
713 1 1 7 not defined $v or $v eq ''
724 1 1 6 not defined $v or $v eq ''
840 0 0 0 exists $hints->{'autodie'} and $hints->{'autodie'} or exists $hints->{'guard Fatal'} and not exists $hints->{'no Fatal'}
887 1 0 25 $_[1] =~ /\D/ or $_[1] < 0
1 1 24 $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{'_FFLAGS'};}
894 1 0 9 $_[1] =~ /\D/ or $_[1] < 0
1 1 8 $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{'_FFLAGS'};}
901 1 1 11 $idx < 0 or not ref $self->{'_FFLAGS'}
1131 0 2 1 !defined($fr->[0]) || $fr->[0] eq ''
1152 0 11 0 $\ || $/
1195 2 2 32 $tlr == 0 or $tlc == 0
0 2 27 $brr == 0 || $brr < $tlr
4 2 30 $tlr == 0 or $tlc == 0 or $brr ne '*' and $brr == 0 || $brr < $tlr
0 2 26 $brc == 0 || $brc < $tlc
2 2 28 $tlr == 0 or $tlc == 0 or $brr ne '*' and $brr == 0 || $brr < $tlr or $brc ne '*' and $brc == 0 || $brc < $tlc
1203 2 17 9 $brr eq '*' or $brr > $max_row
1214 17 15 45 $r < $tlr or $brr ne '*' and $r > $brr
1215 33 3 9 not defined $lc or $tlc < $lc
1235 9 14 2 $to ||= $from
1238 2 1 22 $from <= 0 or $to < $from
1248 3 17 44 $r > $#r and $eod or $r[$r]
1257 27 99 279 $_ > $#r && $eod || $r[$_]
1283 267 3 3 delete $attr{'in'} || delete $attr{'file'}
1285 26 1 243 delete $attr{'out'} || delete $attr{'file'}
1287 3 17 250 ref $in eq 'CODE' or ref $in eq 'ARRAY'
1294 4 1 14 'ARRAY' eq ref $out || 'HASH' eq ref $out
12 1 9 ref $out and 'SCALAR' ne ref $out or 'GLOB' eq ref \$out
1321 3 16 249 ref $in eq 'CODE' or ref $in eq 'ARRAY'
14 2 210 ref $in or 'GLOB' eq ref \$in
1342 266 0 0 $fh or $sink
1350 2 7 255 delete $attr{'keep_headers'} || delete $attr{'keep_column_names'} || delete $attr{'kh'}
1355 1 1 255 delete $attr{'callbacks'}{'after_in'} || delete $attr{'after_in'} || delete $attr{'callbacks'}{'after_parse'} || delete $attr{'after_parse'}
1357 2 2 262 delete $attr{'callbacks'}{'before_out'} || delete $attr{'before_out'}
1359 4 11 251 delete $attr{'callbacks'}{'on_in'} || delete $attr{'on_in'}
1362 1 3 262 delete $attr{'sep_set'} || delete $attr{'seps'}
1364 42 94 130 delete $attr{'detect_bom'} || delete $attr{'bom'}
1366 7 1 258 delete $attr{'munge'} || delete $attr{'munge_column_names'}
1392 11 255 0 delete $attr{'csv'} || 'Text::CSV_PP'->new(\%attr)
1422 0 9 264 ref $_[0] eq 'Text::CSV_PP' || ref $_[0] eq 'Text::CSV'
1464 1 5 1 ref $hdrs or $hdrs eq 'auto'
1479 4 136 107 defined $c->{'hd_s'} or defined $c->{'hd_b'}
140 6 101 defined $c->{'hd_s'} or defined $c->{'hd_b'} or defined $c->{'hd_m'}
142 2 99 defined $c->{'hd_s'} or defined $c->{'hd_b'} or defined $c->{'hd_m'} or defined $c->{'hd_c'}
1497 15 5 7 not ref $key or ref $key eq 'ARRAY' and @$key > 1
1503 3 2 3 not ref $val or ref $val eq 'ARRAY' and @$val > 0
1518 0 3 0 $hdr{$_} || $_
1522 0 3 0 $hdr{$_} || $_
1528 0 3 0 $hdr{$_} || $_
1595 11 11 207 $c->{'cbai'} || $c->{'cboi'}
1773 8 513 967 $ctx->{'verbatim'} || $ctx->{'eol_len'} >= 2
1942 1 1 21668 not defined $quot or $quot eq "\000"
1947 21480 186 0 $self->{'_re_comb_escape'}{$quot}{$esc} ||= qr/(\Q$quot\E|\Q$esc\E)/
1949 0 2 0 $self->{'_re_comb_escape'}{$quot}{$esc} ||= qr/(\Q$esc\E)/
2000 4 2 1396 $ctx->{'quote_empty'} or $check_meta and $self->is_quoted($i)
2018 957 325 45479 $value =~ /\Q$quot\E/ or $sep ne '' and $sep ne "\000" and $value =~ /\Q$sep\E/
325 320 45159 $value =~ /\Q$quot\E/ or $sep ne '' and $sep ne "\000" and $value =~ /\Q$sep\E/ or $esc ne '' and $esc ne "\000" and $value =~ /\Q$esc\E/
320 20324 24835 $value =~ /\Q$quot\E/ or $sep ne '' and $sep ne "\000" and $value =~ /\Q$sep\E/ or $esc ne '' and $esc ne "\000" and $value =~ /\Q$esc\E/ or $ctx->{'quote_binary'} and $value =~ /[\x00-\x1f\x7f-\xa0]/
20324 1240 23595 $value =~ /\Q$quot\E/ or $sep ne '' and $sep ne "\000" and $value =~ /\Q$sep\E/ or $esc ne '' and $esc ne "\000" and $value =~ /\Q$esc\E/ or $ctx->{'quote_binary'} and $value =~ /[\x00-\x1f\x7f-\xa0]/ or $ctx->{'quote_space'} and $value =~ /[\x09\x20]/
2120 3119 2 338 $state || !$last_error
2126 427 426 3459 $ctx->{'eolx'} or $ctx->{'eol_is_cr'}
2153 9 6 0 $ctx->{'strict_n'} ||= $ctx->{'fld_idx'}
2266 1937 0 33415 $c eq "\n" || $c eq '' || defined $eol && $c eq $eol && $eol ne "\r"
2270 29 24 1124 $ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}
2335 164 159 1270 $c2 eq "\n" || defined $eol && $c2 eq $eol
2448 0 2 0 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep
2 0 0 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep or defined $esc and $c2 eq $esc
0 0 0 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep or defined $esc and $c2 eq $esc or $ctx->{'allow_loose_escapes'}
2474 2411 3 2193 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep
3 2165 28 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep or defined $esc and $c2 eq $esc
2165 0 28 defined $quot and $c2 eq $quot or defined $sep and $c2 eq $sep or defined $esc and $c2 eq $esc or $ctx->{'allow_loose_escapes'}
2509 0 60 102 !$v_ref || $$v_ref eq ''
2523 8 8 195 $ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}
2614 0 1 0 !$v_ref || $$v_ref eq ''
2661 4 1 6 not $c2 =~ /[^\x09\x20-\x7E]/ or $c2 eq "\r"
2672 0 0 0 !$v_ref || $$v_ref eq ''
2715 0 3252 26146 not defined $c or $c =~ /[^\x09\x20-\x7E]/
2717 3237 10 5 $ctx->{'binary'} or $ctx->{'utf8'}
2724 5 409 1616 not defined $c or $c =~ /[^\x09\x20-\x7E]/
2727 402 0 9 $ctx->{'binary'} or $ctx->{'utf8'}
2740 32 0 303 $seenSomething or not $ctx->{'useIO'}
2754 5 4 23 $ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}
2915 0 756 19720 !defined($$v_ref) || $$v_ref eq ''
12 0 744 $ctx->{'empty_is_undef'} || !($flag & 1) && $ctx->{'blank_is_undef'}
2924 75 2036 1571 $ctx->{'utf8'} || _is_valid_utf8($$v_ref)
3022 4 0 2 (&Scalar::Util::reftype($self) || '') eq 'HASH' || ref($self) =~ /^Text::CSV/