Branch Coverage

blib/lib/Text/CSV_PP.pm
Criterion Covered Total %
branch 1183 1312 90.1


line true false branch
109 0 32 if ($] < 5.006) { }
0 32 elsif ($] < 5.008) { }
0 32 elsif (not defined &utf8::is_utf8) { }
110 0 0 unless $INC{'bytes.pm'}
127 0 32 if ($@)
129 0 0 if ($@) { }
144 0 0 unless length ref $r
147 0 0 length ref $$r ? :
0 0 exists $tmap{$t} ? :
239 11997 3568 unless $aw
242 3566 2 unless defined $quo and length $quo
245 242 3326 if defined $quo and $quo =~ /^[ \t]/
246 290 3036 if defined $esc and $esc =~ /^[ \t]/
256 12224 35 unless defined $sep and length $sep
258 12241 18 unless defined $quo and length $quo
266 2 12257 unless $sep ne ''
267 1 12256 if length $sep > 16
268 6 12250 if $sep =~ /[\r\n]/
270 12239 11 if (defined $quo)
271 228 12011 if $quo eq $sep
272 1 12010 if length $quo > 16
273 6 12004 if $quo =~ /[\r\n]/
275 11999 16 if (defined $esc)
276 168 11831 if $esc eq $sep
277 6 11825 if $esc =~ /[\r\n]/
279 11837 4 if (defined $eol)
280 1 11836 if length $eol > 16
295 1 884 unless my $class = ref $proto || $proto
296 8 876 if @_ > 0 and ref $_[0] ne 'HASH'
299 1974 1 /^[a-zA-Z]\w+$/ ? :
300 21 1954 if exists $attr_alias{$k}
305 7 869 if (exists $attr{'sep'})
310 25 851 if (exists $attr{'quote'})
315 12 864 if exists $attr{'formula_handling'}
319 1930 6 if (/^[a-z]/ and exists $def_attr{$_})
321 196 1734 if defined $attr{$_} and /_char$/
326 1 6 if $attr{'auto_diag'}
329 7 862 if ($sep_aliased)
331 6 1 if (@b > 1) { }
339 21 848 if ($quote_aliased and defined $attr{'quote_char'})
341 7 14 if (@b > 1) { }
351 35 834 if (my $ec = _check_sanity($self))
353 1 34 if $attr{'auto_diag'}
356 6 828 if (defined $self->{'callbacks'} and ref $self->{'callbacks'} ne 'HASH')
362 8 826 if defined $\ and not exists $attr{'eol'}
364 1 833 if defined $self->{'types'}
365 36 798 if defined $attr_formula
421 11075 8 if defined $val
423 910 10173 if $ec = _check_sanity($self)
430 1 5643 unless defined $val
446 3601 1235 if (@_)
455 11 9 if (@_)
457 1 10 unless defined $quote
460 5 6 if (@b > 1) { }
461 1 4 if @b > 16
471 1 9 if $ec
476 6 12 defined $quote && length $quote ? :
481 3595 1232 if (@_)
484 6 3474 unless $ec
491 3887 1243 if (@_)
500 301 33 if (@_)
502 1 300 unless defined $sep
505 13 288 if (@b > 1) { }
506 1 12 if @b > 16
516 1 296 if $ec
521 21 308 defined $sep && length $sep ? :
526 125 32 if (@_)
528 3 122 unless defined $eol
529 1 124 if length $eol > 16
538 1800 1233 if @_
544 6 4 if @_
550 3 2 if @_
556 4 2 if @_
564 6 1 if @_
570 12 9 if @_
576 1 1 if @_
582 1 1 if @_
590 0 17 if $em =~ s/^\d+$//
591 0 17 $em =~ /[;\n]$/ ? :
597 1 102 unless defined $f
598 6 83 if ($self and $f and ref $f and ref $f eq 'CODE')
608 2 7 $f =~ /^(?: 6 | cb )$/xi ? :
14 9 $f =~ /^(?: 5 | undef )$/xi ? :
15 23 $f =~ /^(?: 4 | empty | )$/xi ? :
16 38 $f =~ /^(?: 3 | diag )$/xi ? :
13 54 $f =~ /^(?: 2 | croak )$/xi ? :
13 67 $f =~ /^(?: 1 | die )$/xi ? :
16 80 $f =~ /^(?: 0 | none )$/xi ? :
616 29 15 if @_
617 36 2 unless $self->{'formula'} == 6
627 1 1 if @_
633 11 1 if (@_)
635 2 9 if not defined $v or $v eq ''
636 1 1 lc $v eq 'false' ? :
2 9 unless $v =~ /^[0-9]/
644 11 1 if @_
650 11 1 if @_
656 3725 1229 if (@_)
658 4 3721 if _unhealthy_whitespace($self, $aw)
667 3 1 if @_
673 2 1 if @_
679 1 1 if @_
685 7 2 if @_
691 11 1 if (@_)
693 9 2 defined $v ? :
701 2 1 if (@_)
703 1 1 defined $v ? :
711 9 3 if (@_)
713 2 7 if not defined $v or $v eq ''
714 1 1 lc $v eq 'false' ? :
2 7 unless $v =~ /^[0-9]/
722 8 2 if (@_)
724 2 6 if not defined $v or $v eq ''
725 1 1 lc $v eq 'false' ? :
2 6 unless $v =~ /^[0-9]/
746 2 5 if (@_) { }
747 1 1 if (my $types = shift()) { }
766 42 30 if (@_)
769 40 2 if (defined $_[0]) { }
1 1 elsif (@_ > 1) { }
770 2 38 if grep {not defined $_;} @_
771 25 5 @_ % 2 == 0 ? :
8 30 @_ == 1 && ref $_[0] eq 'HASH' ? :
777 14 21 unless $cbk =~ /^[\w.]+$/ and ref $cb->{$cbk} eq 'CODE'
780 1 18 if exists $cb->{'error'}
781 18 1 if exists $cb->{'after_parse'}
782 1 18 if exists $cb->{'before_print'}
804 1505 105 if ($self and ref $self and UNIVERSAL::isa($self, 'Text::CSV_PP') and exists $self->{'_ERROR_DIAG'})
808 243 1262 if exists $self->{'_ERROR_POS'}
810 243 1262 if exists $self->{'_ERROR_FLD'}
813 3 231 if $diag[0] and $self->{'callbacks'} and $self->{'callbacks'}{'error'}
818 257 1420 unless (defined $context)
819 16 241 if ($diag[0] and $diag[0] != 2012)
821 8 8 if $diag[4]
823 4 12 unless ($self and ref $self)
830 2 0 if $self->{'diag_verbose'} and $self->{'_ERROR_INPUT'}
834 9 3 if ($lvl < 2)
836 0 8 if (@c >= 11 and $c[10] and ref $c[10] eq 'HASH')
840 0 0 if exists $hints->{'autodie'} and $hints->{'autodie'} or exists $hints->{'guard Fatal'} and not exists $hints->{'no Fatal'}
847 3 9 $lvl > 1 ? :
852 228 1192 $context ? :
865 1400 1 defined $_[0]{'_STRING'} ? :
874 1613 1 ref $_[0]{'_FIELDS'} ? :
882 16 5 $_[0]{'_FFLAGS'} ? :
886 3 26 unless defined $_[0]{'_FFLAGS'}
887 1 24 if $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{'_FFLAGS'};}
889 10 14 $_[0]{'_FFLAGS'}[$_[1]] & 1 ? :
893 1 10 unless defined $_[0]{'_FFLAGS'}
894 1 8 if $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{'_FFLAGS'};}
895 4 4 $_[0]{'_FFLAGS'}[$_[1]] & 2 ? :
900 6 13 unless $self->{'keep_meta_info'}
901 2 11 if $idx < 0 or not ref $self->{'_FFLAGS'}
902 1 10 if $idx >= @{$self->{'_FFLAGS'};}
903 4 6 $self->{'_FFLAGS'}[$idx] & 16 ? :
926 4 1949 if ref $str
931 1739 207 if (defined $str and $self->__parse($fields, $fflags, $str, 0)) { }
947 270 43 defined $self->{'_COLUMN_NAMES'} ? :
313 630 unless @columns
948 138 492 if @columns == 1 and not defined $columns[0]
950 196 296 if (@columns == 1 and ref $columns[0] eq 'ARRAY') { }
5 291 elsif (join '', map({defined $_ ? ref $_ : '';} @columns)) { }
953 606 1 defined $_ ? :
957 1 486 if ($self->{'_BOUND_COLUMNS'} and @columns != @{$self->{'_BOUND_COLUMNS'};})
961 1060 1 defined $_ ? :
968 1 304 unless $fh
972 18 179 if (ref $_ eq 'ARRAY')
976 178 1 if (ref $_ eq 'HASH')
984 1 302 if defined $args{'munge'} and not defined $args{'munge_column_names'}
985 302 1 unless defined $args{'detect_bom'}
986 295 8 unless defined $args{'set_column_names'}
987 282 21 unless defined $args{'munge_column_names'}
992 295 8 if $args{'set_column_names'}
993 295 8 if $args{'set_column_names'}
996 11 292 if (defined $args{'sep_set'})
997 5 6 unless ref $args{'sep_set'} eq 'ARRAY'
1002 0 298 if $^O eq 'MSWin32'
1005 2 296 unless defined $hdr and $hdr ne ''
1008 272 24 unless @seps
1010 290 398 if index($hdr, $sep) >= 0
1013 1 295 if keys %sep >= 2
1017 294 1 if ($args{'detect_bom'})
1018 24 270 if ($hdr =~ s/^\x00\x00\xfe\xff//) { }
24 246 elsif ($hdr =~ s/^\xff\xfe\x00\x00//) { }
25 221 elsif ($hdr =~ s/^\xfe\xff//) { }
24 197 elsif ($hdr =~ s/^\xff\xfe//) { }
48 149 elsif ($hdr =~ s/^\xef\xbb\xbf//) { }
1 148 elsif ($hdr =~ s/^\xf7\x64\x4c//) { }
1 147 elsif ($hdr =~ s/^\xdd\x73\x66\x73//) { }
1 146 elsif ($hdr =~ s/^\x0e\xfe\xff//) { }
1 145 elsif ($hdr =~ s/^\xfb\xee\x28//) { }
1 144 elsif ($hdr =~ s/^\x84\x31\x95\x33//) { }
36 108 elsif ($hdr =~ s/^\x{feff}//) { }
1030 150 144 $enc ? :
1032 6 288 if $hdr eq ''
1034 144 144 if ($enc)
1035 0 144 if $ebcdic and $enc eq 'utf-ebcdic'
1036 48 96 if ($enc =~ /([13]).le$/)
1042 144 0 if ($enc)
1043 96 48 if ($enc ne 'utf-8')
1053 1 288 if ($hdr and $hdr =~ s/\Asep=(\S)([\r\n]+)//i)
1055 1 0 unless length $hdr
1058 142 147 if ($hdr =~ s/^([^\r\n]+)([\r\n]+)([^\r\n].+)\z/$1/s)
1064 0 289 unless open my $h, '<', $hr
1066 2 287 unless my $row = $self->getline($h)
1069 268 19 if ($args{'munge_column_names'} eq 'lc') { }
7 12 elsif ($args{'munge_column_names'} eq 'uc') { }
3 9 elsif ($args{'munge_column_names'} eq 'db') { }
1083 142 145 if ($ahead)
1086 72 70 if $eol =~ /^\r([^\n]|\z)/
1091 2 285 if ref $args{'munge_column_names'} eq 'CODE'
1093 2 1 unless $args{'munge_column_names'}{$_}
1 286 if ref $args{'munge_column_names'} eq 'HASH'
1095 2 285 if exists $hdr{''}
1096 1 284 unless (keys %hdr == @hdr)
1100 276 8 if $args{'set_column_names'}
1101 169 115 wantarray ? :
1107 2 2 defined $self->{'_BOUND_COLUMNS'} ? :
4 23 unless @refs
1108 5 18 if @refs == 1 and not defined $refs[0]
1110 1 17 if ($self->{'_COLUMN_NAMES'} and @refs != @{$self->{'_COLUMN_NAMES'};})
1114 2 15 if (grep {ref $_ ne 'SCALAR';} @refs)
1125 1 119 unless $self->{'_COLUMN_NAMES'}
1126 2 117 unless my $fr = $self->getline(@args)
1127 5 112 if (ref $self->{'_FFLAGS'})
1129 5 0 @$fr ? :
1131 2 1 if @$fr == 1 and !defined($fr->[0]) || $fr->[0] eq ''
1140 2 207 unless ($self->{'_COLUMN_NAMES'})
1152 11 2 if $eol eq ''
1154 1 12 @f == 1 && !defined($f[0]) ? :
1161 1 2 unless $self->{'_COLUMN_NAMES'}
1162 1 1 unless ref $hr eq 'HASH'
1173 20 38 unless 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
1185 21 17 if ($type eq 'cell')
1190 1 36 unless my($tlr, $tlc, $brr, $brc) = / ^ \s* ([0-9]+ ) \s* , \s* ([0-9]+ ) \s* (?: - \s* ([0-9]+ | \*) \s* , \s* ([0-9]+ | \*) \s* )? $/x
1194 19 17 unless defined $brr
1195 4 26 if $tlr == 0 or $tlc == 0 or $brr ne '*' and $brr == 0 || $brr < $tlr or $brc ne '*' and $brc == 0 || $brc < $tlc
1200 26 2 unless $brc eq '*'
1201 14 14 unless defined $min_row
1202 1 27 if $tlr < $min_row
1203 19 9 if $brr eq '*' or $brr > $max_row
1209 44 33 if ++$r < $min_row
1214 32 45 if $r < $tlr or $brr ne '*' and $r > $brr
1215 36 9 if not defined $lc or $tlc < $lc
1216 5 40 $brc eq '*' ? :
1220 2 31 if (@h)
1224 10 23 if $max_row ne '*' and $r == $max_row
1233 0 25 unless my($from, $to) = /^\s* ([0-9]+) (?: \s* - \s* ([0-9]+ | \* ))? \s* $/x
1236 2 23 if $to eq '*'
1238 3 22 if $from <= 0 or $to < $from
1243 5 9 if $type eq 'col'
1247 64 45 if ($type eq 'row')
1248 20 44 if ($r > $#r and $eod or $r[$r])
1250 3 17 if (@h)
1257 126 279 $_ > $#r && $eod || $r[$_] ? :
1258 9 36 if (@h)
1270 4 269 @_ == 1 && ref $_[0] eq 'HASH' ? :
0 273 unless my(%attr) = @_ == 1 && ref $_[0] eq 'HASH' ? %{$_[0];} : @_
1275 42 231 if $enc eq 'auto'
1276 0 273 $enc =~ s/(:\w.*)// ? :
1277 3 270 if $enc =~ /^[-\w.]+$/
1283 3 270 unless my $in = delete $attr{'in'} || delete $attr{'file'}
1285 0 270 exists $attr{'out'} && !$attr{'out'} ? :
1287 20 250 if ref $in eq 'CODE' or ref $in eq 'ARRAY'
1289 1 27 if $in and $out and not ref $in and not ref $out
1293 27 242 if ($out)
1294 5 22 if (ref $out and 'ARRAY' eq ref $out || 'HASH' eq ref $out) { }
13 9 elsif (ref $out and 'SCALAR' ne ref $out or 'GLOB' eq ref \$out) { }
1 8 elsif (ref $out and 'SCALAR' eq ref $out and defined $$out and $$out eq 'skip') { }
1306 1 7 unless open $fh, '>', $out
1309 20 6 if ($fh)
1310 1 19 if ($enc)
1314 17 3 unless (defined $attr{'eol'})
1316 1 16 grep(/crlf/, @layers) ? :
1321 19 249 if (ref $in eq 'CODE' or ref $in eq 'ARRAY') { }
23 226 elsif (ref $in eq 'SCALAR') { }
16 210 elsif (ref $in or 'GLOB' eq ref \$in) { }
1327 0 23 unless open $fh, '<', $in
1331 0 16 if (not ref $in and $] < 5.008005) { }
1339 1 208 unless open $fh, "<$enc", $in
1342 0 266 unless $fh or $sink
1374 6 792 if exists $attr{$f} and not exists $attr{$t}
1379 2 8 unless @{$_[1];} > 1
1380 26 0 if defined $_
1381 26 0 if defined $_
1384 3 0 if defined $fltr and not ref $fltr and exists $fltr{$fltr}
1385 2 264 if ref $fltr eq 'CODE'
1386 250 16 unless ref $fltr eq 'HASH'
1390 253 13 unless defined $attr{'auto_diag'}
1391 265 1 unless defined $attr{'escape_null'}
1392 0 266 unless my $csv = delete $attr{'csv'} || 'Text::CSV_PP'->new(\%attr)
1394 1 265 if defined $form
1422 9 264 if @_ and ref $_[0] eq 'Text::CSV_PP' || ref $_[0] eq 'Text::CSV'
1423 1 273 unless @_
1429 2 264 if (ref $hdrs eq 'HASH')
1434 19 247 if ($c->{'out'} and not $c->{'sink'})
1435 3 16 if (ref $in eq 'CODE') { }
9 7 elsif (ref $in->[0] eq 'ARRAY') { }
1438 3 4 if (ref $row eq 'ARRAY')
1442 4 0 if (ref $row eq 'HASH')
1443 2 2 if ($hdr)
1444 3 0 unless $hdr{$_}
1453 0 9 if ref $hdrs
1455 2 10 if $c->{'cboi'}
1456 0 12 if $c->{'cbbo'}
1461 1 6 ref $hdrs ? :
1462 2 5 unless defined $hdrs
1464 7 1 unless $hdr{$_}
6 1 if ref $hdrs or $hdrs eq 'auto'
1468 0 9 if $c->{'cboi'}
1469 0 9 if $c->{'cbbo'}
1474 7 12 if $c->{'cls'}
1479 8 99 if (defined $c->{'hd_s'} or defined $c->{'hd_b'} or defined $c->{'hd_m'} or defined $c->{'hd_c'})
1481 4 144 if defined $c->{'hd_s'}
1482 0 148 if defined $c->{'hd_d'}
1483 0 8 $hdrs ? :
8 140 if defined $c->{'hd_m'}
1484 0 4 $hdrs ? :
4 144 if defined $c->{'hd_c'}
1487 144 4 if @hdr
1490 11 236 if ($c->{'kh'})
1491 5 6 unless ref $c->{'kh'} eq 'ARRAY'
1496 27 215 if ($key)
1497 7 5 unless not ref $key or ref $key eq 'ARRAY' and @$key > 1
1501 9 226 if ($val)
1502 1 8 unless $key
1503 3 2 unless not ref $val or ref $val eq 'ARRAY' and @$val > 0
1506 5 226 if $c->{'fltr'} and grep /\D/, keys %{$$c{'fltr'};}
1507 192 39 if (defined $hdrs)
1508 41 151 if (not ref $hdrs) { }
1 150 elsif (ref $hdrs eq 'CODE') { }
1509 1 40 if ($hdrs eq 'skip') { }
38 2 elsif ($hdrs eq 'auto') { }
1 1 elsif ($hdrs eq 'lc') { }
1 0 elsif ($hdrs eq 'uc') { }
1513 0 38 unless my $h = $csv->getline($fh)
1514 109 1 unless $hdr{$_}
1517 0 1 unless my $h = $csv->getline($fh)
1521 0 1 unless my $h = $csv->getline($fh)
1526 0 1 unless my $h = $csv->getline($fh)
1530 6 186 if $c->{'kh'} and $hdrs
1533 16 215 if ($c->{'fltr'})
1537 7 9 if (ref $hdrs)
1540 5 16 if exists $f{$hdr[$_]}
1548 51 64 if @hdr
1549 63 52 unless $f{$FLD}->($CSV, $ROW)
1558 2 38 $frag ? :
191 40 ref $hdrs ? :
1561 0 191 if exists $h{''}
1562 0 191 unless (keys %h == @h)
1567 17 172 $key ? :
2 189 $frag ? :
1568 5 12 ref $key ? :
1569 2 15 if (my(@mk) = grep({not exists $h{$_};} grep({defined $_;} $k, @f)))
1574 22 4 defined $k ? :
1579 2 3 ref $val ? :
5 21 $val ? :
1588 229 0 if ($ref) { }
1589 4 144 if @row1 and not $c->{'hd_c'} and not ref $hdrs
1594 213 16 if $c->{'cls'}
1595 22 207 if ($ref and $c->{'cbai'} || $c->{'cboi'})
1597 21 1 ref $ref eq 'ARRAY' ? :
1599 34 37 if ref $r eq 'HASH'
1600 30 41 if $c->{'cbai'}
1601 46 25 if $c->{'cboi'}
1605 6 223 if ($c->{'sink'})
1606 0 6 unless my $ro = ref $c->{'out'}
1608 1 5 if $ro eq 'SCALAR' and ${$c->{'out'};} eq 'skip'
1611 0 5 unless $ro eq ref $ref
1614 4 1 if ($ro eq 'ARRAY')
1615 2 2 if (@{$c->{'out'};} and @$ref and ref $c->{'out'}[0] eq ref $ref->[0])
1622 1 0 if ($ro eq 'HASH')
1634 1 222 unless defined wantarray
1655 26871 775 if ($self->{'_CACHE'}) { }
1659 775 0 if (defined $self->{'sep_char'})
1662 5 770 if (defined $self->{'sep'} and $self->{'sep'} ne '')
1666 5 0 if $sep_len > 1
1670 775 0 if (exists $self->{'quote_char'})
1672 771 4 if (defined $quote_char and length $quote_char) { }
1678 4 771 if (defined $self->{'quote'} and $self->{'quote'} ne '')
1682 4 0 if $quote_len > 1
1686 775 0 if (exists $self->{'escape_char'})
1688 767 8 if (defined $escape_char and length $escape_char) { }
1695 771 4 if (defined $self->{'eol'})
1700 42 729 if ($eol_len == 1 and $eol eq "\r")
1706 1 774 if (defined $self->{'undef_str'}) { }
1708 0 1 if utf8::is_utf8($self->{'undef_str'})
1712 0 775 if (defined $self->{'comment_str'})
1716 1 774 if (defined $self->{'_types'})
1721 4 771 if (defined $self->{'_is_bound'})
1725 255 520 if (defined $self->{'callbacks'})
1728 9 246 if (defined $cb->{'after_parse'} and ref $cb->{'after_parse'} eq 'CODE')
1731 1 254 if (defined $cb->{'before_print'} and ref $cb->{'before_print'} eq 'CODE')
1743 13175 0 defined $self->{$_} ? :
1746 2325 0 defined $self->{$_} ? :
1748 8 767 if ($ctx->{'escape_char'} eq "\000")
1760 89 27557 if ($ctx->{'is_bound'})
1762 75 14 if ($bound and ref $bound eq 'ARRAY') { }
1773 913 54 $ctx->{'eol'} =~ /\A[\015\012]/ ? :
521 967 $ctx->{'verbatim'} || $ctx->{'eol_len'} >= 2 ? :
1488 26158 $ctx->{'eol_len'} ? :
1776 14 40 if ($ctx->{'sep_len'} and $ctx->{'sep_len'} > 1 and _is_valid_utf8($ctx->{'sep'}))
1779 0 28 if ($ctx->{'quo_len'} and $ctx->{'quo_len'} > 1 and _is_valid_utf8($ctx->{'quo'}))
1788 850 22589 unless exists $self->{'_CACHE'}
1792 1 22588 if (not defined $key) { }
3122 19466 elsif ($key eq 'sep_char') { }
3369 16097 elsif ($key eq 'quote_char') { }
251 15846 elsif ($key eq '_has_ahead') { }
11 15835 elsif ($key eq '_has_hooks') { }
11 15824 elsif ($key eq '_is_bound') { }
3223 12601 elsif ($key eq 'sep') { }
3377 9224 elsif ($key eq 'quote') { }
112 9112 elsif ($key eq 'eol') { }
11 9101 elsif ($key eq 'undef_str') { }
1814 11 3212 if $len
1815 0 3223 $len == 1 ? :
1820 3 3374 if $len
1821 0 3377 $len == 1 ? :
1824 112 0 if (defined $value)
1828 75 37 $value eq "\r" ? :
1831 9 2 if (defined $value) { }
1833 1 8 if utf8::is_utf8($value)
1847 1 1 unless (exists $self->{'_CACHE'})
1868 1 0 if ($cache->{'sep_len'} and $cache->{'sep_len'} > 1)
1872 1 0 if ($cache->{'quo_len'} and $cache->{'quo_len'} > 1)
1875 0 1 if ($cache->{'types_len'}) { }
1880 0 1 if ($cache->{'bptr'})
1883 1 0 if ($cache->{'tmp'})
1890 23 4 defined $value ? :
23 4 defined $value ? :
1896 3 0 if (defined $value)
1900 3 0 defined $v ? :
1910 0 8 unless defined $str
1919 20233 161 unless $self->{'callbacks'}
1922 36 125 unless $cb and ref $cb eq 'CODE'
1925 125 0 if (@res)
1926 64 61 if ref $res[0] eq 'SCALAR' and ${$res[0];} eq 'skip'
1942 2 21668 if (not defined $quot or $quot eq "\000")
1945 21668 2 if ($esc ne '' and $esc ne "\000")
1946 21666 2 if ($quot ne '') { }
1955 5 1 if ($n < 0 and $ctx->{'is_bound'})
1960 2 21668 $ctx->{'keep_meta_info'} >= 10 && @{[] unless $self->{'_FFLAGS'};} >= $n ? :
1966 14 53853 if ($bound) { }
1969 53853 0 if (@$fields > $i)
1973 0 53867 unless $v_ref
1977 56 53811 unless (defined $value)
1978 8 48 if ($ctx->{'undef_str'}) { }
1979 3 5 if ($ctx->{'undef_flg'})
1990 10 6 if (substr($value, 0, 1) eq '=' and $ctx->{'formula'})
1992 2 4 unless (defined $value)
1998 6282 47523 $ctx->{'always_quote'} ? :
1999 1402 52403 if ($value eq '') { }
2000 6 1396 if $ctx->{'quote_empty'} or $check_meta and $self->is_quoted($i)
2004 20041 32362 if (utf8::is_utf8($value))
2009 5 52398 if $check_meta and $self->is_quoted($i)
2011 46761 5642 if (not $must_be_quoted and $quot ne '')
2018 21559 23600 if $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]/
2021 7 52396 if (not $ctx->{'binary'} and $value =~ /[^\x09\x20-\x7E]/)
2028 52394 2 if ($re_esc)
2031 52291 105 if ($ctx->{'escape_null'})
2036 29446 24352 if ($must_be_quoted)
2042 21655 4 defined $ctx->{'eol'} ? :
2050 0 37 unless my $fa = $ctx->{'formula'}
2051 3 34 if ($fa == 1)
2052 3 31 if ($fa == 2)
2054 6 25 if ($fa == 3)
2056 3 3 if ($ctx->{'recno'})
2061 1 5 if (ref $column_names eq 'ARRAY' and @$column_names >= $i - 1)
2063 1 0 if defined $column_name
2069 5 20 if ($fa == 4)
2072 5 15 if ($fa == 5)
2076 15 0 if ($fa == 6)
2077 15 0 if (ref $self->{'_FORMULA_CB'} eq 'CODE')
2090 5 20272 if (not defined $fields) { }
5 20267 elsif (ref $fields ne 'ARRAY') { }
2099 6 20266 unless $self->__combine(\$str, $fields, 1)
2103 1 20265 unless $io->print($str)
2117 5 3454 if ($state and ($ctx->{'has_hooks'} || 0) & 2)
2126 853 3459 if $ctx->{'eolx'} or $ctx->{'eol_is_cr'}
2128 2369 1943 if ($ctx->{'useIO'} = $useIO) { }
2132 175 2194 if ($ctx->{'has_ahead'} and defined $self->{'_AHEAD'})
2143 0 4312 if ($ctx->{'has_error_input'})
2152 15 4292 if ($ctx->{'strict'})
2154 6 9 if ($ctx->{'strict_n'} != $ctx->{'fld_idx'})
2155 4 2 unless ($ctx->{'useIO'} & 16)
2162 2367 1940 if ($ctx->{'useIO'}) { }
2163 37 2330 if (defined $ctx->{'tmp'} and $ctx->{'used'} < $ctx->{'size'} and $ctx->{'has_ahead'}) { }
2167 501 1829 if ($ctx->{'useIO'} & 16)
2173 1519 848 if ($fflags)
2174 11 1508 if ($ctx->{'keep_meta_info'}) { }
2184 2 3706 if ($result and $ctx->{'types'})
2188 2 6 unless defined $value
2190 2 4 if ($type == IV()) { }
2 2 elsif ($type == NV()) { }
2206 30 4264 if not $ctx->{'utf8'} and $ctx->{'sep_len'}
2207 18 4276 if not $ctx->{'utf8'} and $ctx->{'quo_len'}
2208 1056 3238 if not $ctx->{'utf8'} and $ctx->{'eol_len'}
2217 227 13772 $_ eq "\000" ? :
17233 31 if defined $_
2226 147 155 if (not $waitingForField and $c eq '' and $hit ne '' and $ctx->{'useIO'} and not $ctx->{'useIO'} & 16)
2232 352 69670 if $seenSomething and $hit eq '' and $c eq ''
2235 22191 51492 unless ($v_ref)
2236 87 22104 if ($ctx->{'is_bound'}) { }
2243 4 22187 unless $v_ref
2251 45237 28442 if (defined $hit and $hit ne '')
2252 9488 35749 if ($waitingForField)
2253 0 1983 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A\Q$ctx->{'comment_str'}\E/)
2259 0 45237 if ($hit =~ /[^\x09\x20-\x7E]/)
2266 11383 62912 if (defined $c and defined $sep and $c eq $sep) { }
22895 40017 elsif (defined $c and defined $quot and $quot ne "\000" and $c eq $quot) { }
4655 35362 elsif (defined $c and defined $esc and $esc ne "\000" and $c eq $esc) { }
2348 33014 elsif (defined $c and $c eq "\n" || $c eq '' || defined $eol && $c eq $eol && $eol ne "\r") { }
1012 32002 elsif (defined $c and $c eq "\r" and not $ctx->{'verbatim'}) { }
2267 1177 10206 if ($waitingForField) { }
2186 8020 elsif ($ctx->{'flag'} & 1) { }
2270 53 1124 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2275 1177 0 unless ($ctx->{'is_bound'})
2279 8 1169 if ($ctx->{'keep_meta_info'} and $fflags)
2295 10923 11972 if ($waitingForField)
2302 11918 54 if ($ctx->{'flag'} & 1)
2308 4290 7628 if ($ctx->{'allow_whitespace'})
2312 1 89 if ($ctx->{'allow_loose_quotes'} and not defined $esc && $c2 eq $esc)
2320 1311 10607 unless (defined $c2)
2327 9014 1593 if (defined $c2 and defined $sep and $c2 eq $sep)
2335 311 1282 if (defined $c2 and $c2 eq "\n" || defined $eol && $c2 eq $eol)
2342 1261 21 if (defined $esc and $c eq $esc)
2344 51 1210 if (defined $c2 and $c2 eq '0')
2350 1077 133 if (defined $c2 and defined $quot and $c2 eq $quot)
2353 1 1076 if ($ctx->{'utf8'})
2359 4 1 if ($ctx->{'allow_loose_escapes'} and defined $c2 and $c2 ne "\r")
2367 93 57 if (defined $c2 and $c2 eq "\r")
2368 0 93 if ($ctx->{'eol_is_cr'})
2376 79 14 if (defined $c3 and $c3 eq "\n")
2383 1 13 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2384 0 1 if ($c3 eq "\r")
2390 1 0 unless ($c3 =~ /[^\x09\x20-\x7E]/)
2402 12 1 $quoesc ? :
2406 10 47 if ($ctx->{'allow_loose_quotes'} and not $quoesc)
2415 39 8 if ($quoesc)
2424 4 50 if ($ctx->{'allow_loose_quotes'}) { }
2434 34 4621 if ($waitingForField) { }
4612 9 elsif ($ctx->{'flag'} & 1) { }
9 0 elsif ($v_ref) { }
2436 4 30 if ($ctx->{'allow_unquoted_escape'})
2443 1 3 unless (defined $c2)
2448 1 2 if ($c2 eq '0') { }
2 0 elsif (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'}) { }
2457 0 2 if ($ctx->{'utf8'})
2469 3 4609 unless (defined $c2)
2474 2 4607 if ($c2 eq '0') { }
4581 26 elsif (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'}) { }
2483 0 4581 if ($ctx->{'utf8'})
2495 4 5 unless (defined $c2)
2509 23 37 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2512 0 23 unless (defined $c)
2520 211 2502 if ($waitingForField)
2523 16 195 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2528 210 1 unless ($ctx->{'is_bound'})
2531 14 197 if ($ctx->{'keep_meta_info'} and $fflags)
2536 767 1735 if ($ctx->{'flag'} & 1) { }
11 1724 elsif ($ctx->{'verbatim'}) { }
2540 29 738 unless ($ctx->{'binary'})
2550 1 10 unless ($ctx->{'binary'})
2554 8 2 unless $ctx->{'eol'} eq $c and $ctx->{'useIO'}
2559 4 15 if (not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1 and $ctx->{'useIO'} and $hit =~ /^sep=(.{1,16})$/i)
2563 4 0 if ($len <= 16)
2564 3 1 $len == 1 ? :
2576 110 902 if ($waitingForField)
2577 29 81 if ($ctx->{'eol_is_cr'})
2585 5 76 unless (defined $c2)
2589 0 5 unless $seenSomething
2592 66 10 if ($c2 eq "\n")
2599 5 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2600 0 5 if ($c2 eq "\n")
2607 2 3 unless ($c2 =~ /[^\x09\x20-\x7E]/)
2614 1 0 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2617 0 1 unless (defined $c)
2636 593 309 if ($ctx->{'flag'} & 1) { }
2640 70 523 unless ($ctx->{'binary'})
2647 163 146 if ($ctx->{'eol_is_cr'})
2654 130 16 if (defined $c2 and $c2 eq "\n")
2660 11 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2661 5 6 if (not $c2 =~ /[^\x09\x20-\x7E]/ or $c2 eq "\r")
2672 0 0 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2675 0 0 unless (defined $c)
2694 0 32002 if ($ctx->{'eolx'} and $c eq $eol)
2699 574 31428 if ($waitingForField)
2700 0 163 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A$ctx->{'comment_str'}/)
2704 231 343 if ($ctx->{'allow_whitespace'} and $self->__is_whitespace($ctx, $c))
2707 1 340 unless defined $c
2714 29398 2030 if ($ctx->{'flag'} & 1) { }
2715 3252 26146 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
2717 5 10 unless ($ctx->{'binary'} or $ctx->{'utf8'})
2724 414 1616 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
2725 3 411 if $ctx->{'useIO'} and not defined $c
2727 9 0 unless ($ctx->{'binary'} or $ctx->{'utf8'})
2735 3 7809 if $ctx->{'useIO'} and $ctx->{'verbatim'} and $ctx->{'used'} == $ctx->{'size'}
2739 335 55 if ($waitingForField)
2740 32 303 if ($seenSomething or not $ctx->{'useIO'})
2742 31 1 unless ($v_ref)
2743 0 31 if ($ctx->{'is_bound'}) { }
2750 0 31 unless $v_ref
2754 9 23 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2759 32 0 unless ($ctx->{'is_bound'})
2762 3 29 if ($ctx->{'keep_meta_info'} and $fflags)
2771 14 41 if ($ctx->{'flag'} & 1)
2776 41 0 if ($v_ref)
2784 2118 4056 if defined $ctx->{'tmp'} and $ctx->{'used'} <= 0
2785 0 4056 if $ctx->{'used'} < $ctx->{'size'}
2786 1365 2691 unless $ctx->{'useIO'}
2788 2187 504 if (defined $res) { }
147 357 elsif (delete $ctx->{'has_leftover'}) { }
2789 0 2187 if ($ctx->{'has_ahead'}) { }
2791 0 0 if $ctx->{'eol_len'}
2797 2187 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
2799 70 2117 if utf8::is_utf8($ctx->{'tmp'})
2807 147 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
2809 0 147 if utf8::is_utf8($ctx->{'tmp'})
2814 303 54 unless defined $ctx->{'tmp'}
2831 3 98 if ($i >= $ctx->{'is_bound'})
2835 98 0 if (ref $ctx->{'bound'} eq 'ARRAY')
2837 98 0 if (ref $ref)
2838 14 84 if ($keep)
2841 83 1 unless (&Scalar::Util::readonly($$ref))
2853 0 17338 unless defined $ctx->{'used'}
2854 1355 15983 if ($ctx->{'used'} >= $ctx->{'size'})
2855 20 1335 if ($self->__get_from_src($ctx, $src))
2861 15983 0 if ($ctx->{'tmp'} =~ /\G($ctx->{'_re'}|.)/gs) { }
2863 1222 14761 if ($c =~ /[^\x09\012\015\x20-\x7e]/)
2869 0 0 if ($self->__get_from_src($ctx, $src))
2891 295 0 if $ctx->{'tmp'}
2898 535 4529 unless defined $c
2909 206 20297 if $ctx->{'utf8'}
2910 27 107 if ($ctx->{'formula'} and $$v_ref and substr($$v_ref, 0, 1) eq '=')
2912 22 3 defined $value ? :
2915 12 20464 if (!defined($$v_ref) || $$v_ref eq '' and $ctx->{'empty_is_undef'} || !($flag & 1) && $ctx->{'blank_is_undef'}) { }
2921 1725 18739 if ($ctx->{'allow_whitespace'} and not $flag & 1)
2924 2111 1571 if ($flag & 2 and $ctx->{'decode_utf8'} and $ctx->{'utf8'} || _is_valid_utf8($$v_ref))
2928 20395 81 unless ($ctx->{'is_bound'})
2931 88 20388 if ($ctx->{'keep_meta_info'} and $fflags)
2941 1382 137 $res ? :
2953 12 259 if ($offset < 0)
2962 12 577 if ($offset > 0)
2967 12 565 if ($n++ >= $tail and $tail)
2971 117 460 if (($ctx->{'has_hooks'} || 0) & 2)
2972 63 54 unless ($self->_hook('after_parse', \@row))
2980 12 56 if defined $len and $n >= $len and $offset >= 0
2983 8 263 if (defined $len and $n > $len)
2991 2050 1639 $_[0] =~ /^(?: [\x00-\x7F] |[\xC2-\xDF][\x80-\xBF] |[\xE0][\xA0-\xBF][\x80-\xBF] |[\xE1-\xEC][\x80-\xBF][\x80-\xBF] |[\xED][\x80-\x9F][\x80-\xBF] |[\xEE-\xEF][\x80-\xBF][\x80-\xBF] |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF] |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF] |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF] )+$/x ? :
3013 0 1 if (defined $pos)
3022 4 2 if ($self and (&Scalar::Util::reftype($self) || '') eq 'HASH' || ref($self) =~ /^Text::CSV/)
3038 4 1648 if ($error == 0)
3044 304 1348 if ($error == 2012)
3047 250 1402 if ($ctx->{'auto_diag'})
3056 1652 1793 if (ref $self) { }
3063 892 2550 if (defined $errstr)
3085 4336 0 ref $left ? :