Branch Coverage

blib/lib/Text/CSV_PP.pm
Criterion Covered Total %
branch 1191 1318 90.3


line true false branch
131 0 34 if ($] < 5.006) { }
0 34 elsif ($] < 5.008) { }
0 34 elsif (not defined &utf8::is_utf8) { }
132 0 0 unless $INC{'bytes.pm'}
149 0 34 if ($@)
151 0 0 if ($@) { }
166 0 0 unless length ref $r
169 0 0 length ref $$r ? :
0 0 exists $tmap{$t} ? :
262 12024 3568 unless $aw
265 3566 2 unless defined $quo and length $quo
268 242 3326 if defined $quo and $quo =~ /^[ \t]/
269 290 3036 if defined $esc and $esc =~ /^[ \t]/
279 12251 35 unless defined $sep and length $sep
281 12268 18 unless defined $quo and length $quo
289 2 12284 unless $sep ne ""
290 1 12283 if length $sep > 16
291 6 12277 if $sep =~ /[\r\n]/
293 12266 11 if (defined $quo)
294 228 12038 if $quo eq $sep
295 1 12037 if length $quo > 16
296 6 12031 if $quo =~ /[\r\n]/
298 12026 16 if (defined $esc)
299 168 11858 if $esc eq $sep
300 6 11852 if $esc =~ /[\r\n]/
302 11864 4 if (defined $eol)
303 1 11863 if length $eol > 16
318 1 909 unless my $class = ref $proto || $proto
319 8 901 if @_ > 0 and ref $_[0] ne "HASH"
322 2037 1 /^[a-zA-Z]\w+$/ ? :
323 21 2017 if exists $attr_alias{$k}
328 7 894 if (exists $attr{'sep'})
333 25 876 if (exists $attr{'quote'})
338 12 889 if exists $attr{'formula_handling'}
342 1995 6 if (/^[a-z]/ and exists $def_attr{$_})
344 197 1798 if defined $attr{$_} and /_char$/
349 1 6 if $attr{'auto_diag'}
352 7 887 if ($sep_aliased)
354 6 1 if (@b > 1) { }
362 21 873 if ($quote_aliased and defined $attr{'quote_char'})
364 7 14 if (@b > 1) { }
374 35 859 if (my $ec = _check_sanity($self))
376 1 34 if $attr{'auto_diag'}
379 6 853 if (defined $self->{'callbacks'} and ref $self->{'callbacks'} ne "HASH")
385 8 851 if defined $\ and not exists $attr{'eol'}
387 1 858 if defined $self->{'types'}
388 36 823 if defined $attr_formula
444 11076 8 if defined $val
446 910 10174 if $ec = _check_sanity($self)
453 1 5644 unless defined $val
469 3601 1235 if (@_)
478 11 9 if (@_)
480 1 10 unless defined $quote
483 5 6 if (@b > 1) { }
484 1 4 if @b > 16
494 1 9 if $ec
499 6 12 defined $quote && length $quote ? :
504 3595 1232 if (@_)
507 6 3474 unless $ec
514 3888 1243 if (@_)
523 302 33 if (@_)
525 1 301 unless defined $sep
528 13 289 if (@b > 1) { }
529 1 12 if @b > 16
539 1 297 if $ec
544 21 309 defined $sep && length $sep ? :
549 125 32 if (@_)
551 3 122 unless defined $eol
552 1 124 if length $eol > 16
561 1800 1233 if @_
567 6 4 if @_
573 3 2 if @_
579 4 2 if @_
587 6 1 if @_
593 12 9 if @_
599 1 1 if @_
605 1 1 if @_
613 0 17 if $em =~ s/^\d+$//
614 0 17 $em =~ /[;\n]$/ ? :
620 1 102 unless defined $f
621 6 83 if ($self and $f and ref $f and ref $f eq "CODE")
631 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 ? :
639 29 15 if @_
640 36 2 unless $self->{'formula'} == 6
650 1 1 if @_
656 11 1 if (@_)
658 2 9 if not defined $v or $v eq ""
659 1 1 lc $v eq 'false' ? :
2 9 unless $v =~ /^[0-9]/
667 11 1 if @_
673 11 1 if @_
679 3725 1229 if (@_)
681 4 3721 if _unhealthy_whitespace($self, $aw)
690 3 1 if @_
696 2 1 if @_
702 1 1 if @_
708 7 2 if @_
714 11 1 if (@_)
716 9 2 defined $v ? :
724 14 1 if (@_)
726 13 1 defined $v ? :
734 9 3 if (@_)
736 2 7 if not defined $v or $v eq ""
737 1 1 lc $v eq 'false' ? :
2 7 unless $v =~ /^[0-9]/
745 8 2 if (@_)
747 2 6 if not defined $v or $v eq ""
748 1 1 lc $v eq 'false' ? :
2 6 unless $v =~ /^[0-9]/
769 2 5 if (@_) { }
770 1 1 if (my $types = shift()) { }
789 43 30 if (@_)
792 41 2 if (defined $_[0]) { }
1 1 elsif (@_ > 1) { }
793 2 39 if grep {not defined $_;} @_
794 26 5 @_ % 2 == 0 ? :
8 31 @_ == 1 && ref $_[0] eq 'HASH' ? :
800 14 22 unless $cbk =~ /^[\w.]+$/ and ref $cb->{$cbk} eq "CODE"
803 2 18 if exists $cb->{'error'}
804 18 2 if exists $cb->{'after_parse'}
805 1 19 if exists $cb->{'before_print'}
827 1517 105 if ($self and ref $self and UNIVERSAL::isa($self, "Text::CSV_PP") and exists $self->{'_ERROR_DIAG'})
831 251 1266 if exists $self->{'_ERROR_POS'}
833 251 1266 if exists $self->{'_ERROR_FLD'}
836 9 235 if $diag[0] and $self->{'callbacks'} and $self->{'callbacks'}{'error'}
841 263 1420 unless (defined $context)
842 16 247 if ($diag[0] and $diag[0] != 2012)
844 8 8 if $diag[4]
846 4 12 unless ($self and ref $self)
853 2 0 if $self->{'diag_verbose'} and $self->{'_ERROR_INPUT'}
857 9 3 if ($lvl < 2)
859 0 8 if (@c >= 11 and $c[10] and ref $c[10] eq "HASH")
863 0 0 if exists $hints->{'autodie'} and $hints->{'autodie'} or exists $hints->{'guard Fatal'} and not exists $hints->{'no Fatal'}
870 3 9 $lvl > 1 ? :
875 228 1192 $context ? :
888 1400 1 defined $_[0]{'_STRING'} ? :
897 1613 1 ref $_[0]{'_FIELDS'} ? :
905 16 5 $_[0]{'_FFLAGS'} ? :
909 3 26 unless defined $_[0]{'_FFLAGS'}
910 1 24 if $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{"_FFLAGS"};}
912 10 14 $_[0]{'_FFLAGS'}[$_[1]] & 1 ? :
916 1 10 unless defined $_[0]{'_FFLAGS'}
917 1 8 if $_[1] =~ /\D/ or $_[1] < 0 or $_[1] > $#{$_[0]{"_FFLAGS"};}
918 4 4 $_[0]{'_FFLAGS'}[$_[1]] & 2 ? :
923 6 13 unless $self->{'keep_meta_info'}
924 2 11 if $idx < 0 or not ref $self->{'_FFLAGS'}
925 1 10 if $idx >= @{$self->{'_FFLAGS'};}
926 4 6 $self->{'_FFLAGS'}[$idx] & 16 ? :
949 4 1949 if ref $str
954 1739 207 if (defined $str and $self->__parse($fields, $fflags, $str, 0)) { }
970 271 43 defined $self->{'_COLUMN_NAMES'} ? :
314 636 unless @columns
971 138 498 if @columns == 1 and not defined $columns[0]
973 201 297 if (@columns == 1 and ref $columns[0] eq 'ARRAY') { }
5 292 elsif (join '', map({defined $_ ? ref $_ : '';} @columns)) { }
976 609 1 defined $_ ? :
980 1 492 if ($self->{'_BOUND_COLUMNS'} and @columns != @{$self->{'_BOUND_COLUMNS'};})
984 1078 1 defined $_ ? :
991 1 305 unless $fh
995 18 180 if (ref $_ eq "ARRAY")
999 179 1 if (ref $_ eq "HASH")
1007 1 303 if defined $args{'munge'} and not defined $args{'munge_column_names'}
1008 303 1 unless defined $args{'detect_bom'}
1009 296 8 unless defined $args{'set_column_names'}
1010 283 21 unless defined $args{'munge_column_names'}
1015 296 8 if $args{'set_column_names'}
1016 296 8 if $args{'set_column_names'}
1019 15 289 if (defined $args{'sep_set'})
1020 5 10 unless ref $args{'sep_set'} eq "ARRAY"
1025 0 299 if $^O eq "MSWin32"
1028 2 297 unless defined $hdr and $hdr ne ""
1031 269 28 unless @seps
1033 291 399 if index($hdr, $sep) >= 0
1036 1 296 if keys %sep >= 2
1040 295 1 if ($args{'detect_bom'})
1041 24 271 if ($hdr =~ s/^\x00\x00\xfe\xff//) { }
24 247 elsif ($hdr =~ s/^\xff\xfe\x00\x00//) { }
25 222 elsif ($hdr =~ s/^\xfe\xff//) { }
24 198 elsif ($hdr =~ s/^\xff\xfe//) { }
48 150 elsif ($hdr =~ s/^\xef\xbb\xbf//) { }
1 149 elsif ($hdr =~ s/^\xf7\x64\x4c//) { }
1 148 elsif ($hdr =~ s/^\xdd\x73\x66\x73//) { }
1 147 elsif ($hdr =~ s/^\x0e\xfe\xff//) { }
1 146 elsif ($hdr =~ s/^\xfb\xee\x28//) { }
1 145 elsif ($hdr =~ s/^\x84\x31\x95\x33//) { }
36 109 elsif ($hdr =~ s/^\x{feff}//) { }
1053 150 145 $enc ? :
1055 6 289 if $hdr eq ""
1057 144 145 if ($enc)
1058 0 144 if $ebcdic and $enc eq "utf-ebcdic"
1059 48 96 if ($enc =~ /([13]).le$/)
1065 144 0 if ($enc)
1066 96 48 if ($enc ne "utf-8")
1076 1 289 if ($hdr and $hdr =~ s/\Asep=(\S)([\r\n]+)//i)
1078 1 0 unless length $hdr
1081 142 148 if ($hdr =~ s/^([^\r\n]+)([\r\n]+)([^\r\n].+)\z/$1/s)
1087 0 290 unless open my $h, "<", $hr
1089 2 288 unless my $row = $self->getline($h)
1092 269 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') { }
1106 142 146 if ($ahead)
1109 72 70 if $eol =~ /^\r([^\n]|\z)/
1114 2 286 if ref $args{'munge_column_names'} eq "CODE"
1116 2 1 unless $args{'munge_column_names'}{$_}
1 287 if ref $args{'munge_column_names'} eq "HASH"
1118 2 286 if exists $hdr{''}
1119 1 285 unless (keys %hdr == @hdr)
1123 277 8 if $args{'set_column_names'}
1124 170 115 wantarray ? :
1130 2 2 defined $self->{'_BOUND_COLUMNS'} ? :
4 23 unless @refs
1131 5 18 if @refs == 1 and not defined $refs[0]
1133 1 17 if ($self->{'_COLUMN_NAMES'} and @refs != @{$self->{'_COLUMN_NAMES'};})
1137 2 15 if (grep {ref $_ ne "SCALAR";} @refs)
1148 1 119 unless $self->{'_COLUMN_NAMES'}
1149 2 117 unless my $fr = $self->getline(@args)
1150 5 112 if (ref $self->{'_FFLAGS'})
1152 5 0 @$fr ? :
1154 2 1 if @$fr == 1 and !defined($fr->[0]) || $fr->[0] eq ''
1163 2 212 unless ($self->{'_COLUMN_NAMES'})
1175 11 2 if $eol eq ""
1177 1 12 @f == 1 && !defined($f[0]) ? :
1184 1 2 unless $self->{'_COLUMN_NAMES'}
1185 1 1 unless ref $hr eq "HASH"
1196 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
1208 21 17 if ($type eq "cell")
1213 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
1217 19 17 unless defined $brr
1218 4 26 if $tlr == 0 or $tlc == 0 or $brr ne "*" and $brr == 0 || $brr < $tlr or $brc ne "*" and $brc == 0 || $brc < $tlc
1223 26 2 unless $brc eq "*"
1224 14 14 unless defined $min_row
1225 1 27 if $tlr < $min_row
1226 19 9 if $brr eq "*" or $brr > $max_row
1232 44 33 if ++$r < $min_row
1237 32 45 if $r < $tlr or $brr ne "*" and $r > $brr
1238 36 9 if not defined $lc or $tlc < $lc
1239 5 40 $brc eq '*' ? :
1243 2 31 if (@h)
1247 10 23 if $max_row ne "*" and $r == $max_row
1256 0 25 unless my($from, $to) = /^\s* ([0-9]+) (?: \s* - \s* ([0-9]+ | \* ))? \s* $/x
1259 2 23 if $to eq "*"
1261 3 22 if $from <= 0 or $to < $from
1266 5 9 if $type eq "col"
1270 64 45 if ($type eq "row")
1271 20 44 if ($r > $#r and $eod or $r[$r])
1273 3 17 if (@h)
1280 126 279 $_ > $#r && $eod || $r[$_] ? :
1281 9 36 if (@h)
1293 4 280 @_ == 1 && ref $_[0] eq 'HASH' ? :
0 284 unless my(%attr) = @_ == 1 && ref $_[0] eq 'HASH' ? %{$_[0];} : @_
1298 42 242 if $enc eq "auto"
1299 0 284 $enc =~ s/(:\w.*)// ? :
1300 3 281 if $enc =~ /^[-\w.]+$/
1306 3 281 unless my $in = delete $attr{'in'} || delete $attr{'file'}
1308 0 281 exists $attr{'out'} && !$attr{'out'} ? :
1310 25 256 if ref $in eq "CODE" or ref $in eq "ARRAY"
1312 1 32 if $in and $out and not ref $in and not ref $out
1316 32 248 if ($out)
1317 5 27 if (ref $out and 'ARRAY' eq ref $out || 'HASH' eq ref $out) { }
14 13 elsif (ref $out and 'SCALAR' ne ref $out or 'GLOB' eq ref \$out) { }
1 12 elsif (ref $out and 'SCALAR' eq ref $out and defined $$out and $$out eq 'skip') { }
1329 1 11 unless open $fh, ">", $out
1332 25 6 if ($fh)
1333 1 24 if ($enc)
1337 18 7 unless (defined $attr{'eol'})
1339 1 17 grep(/crlf/, @layers) ? :
1344 24 255 if (ref $in eq 'CODE' or ref $in eq 'ARRAY') { }
23 232 elsif (ref $in eq 'SCALAR') { }
16 216 elsif (ref $in or 'GLOB' eq ref \$in) { }
1350 0 23 unless open $fh, "<", $in
1354 0 16 if (not ref $in and $] < 5.008005) { }
1362 1 214 unless open $fh, "<$enc", $in
1365 0 277 unless $fh or $sink
1397 6 825 if exists $attr{$f} and not exists $attr{$t}
1402 2 8 unless @{$_[1];} > 1
1403 26 0 if defined $_
1404 26 0 if defined $_
1407 3 0 if defined $fltr and not ref $fltr and exists $fltr{$fltr}
1408 2 275 if ref $fltr eq "CODE"
1409 261 16 unless ref $fltr eq "HASH"
1413 264 13 unless defined $attr{'auto_diag'}
1414 276 1 unless defined $attr{'escape_null'}
1415 0 277 unless my $csv = delete $attr{'csv'} || 'Text::CSV_PP'->new(\%attr)
1417 1 276 if defined $form
1419 8 11 if $kh and not ref $kh and $kh =~ /^(?:1|yes|true|internal|auto)$/i
1448 0 284 if @_ and ref $_[0] eq 'Text::CSV_PP' || ref $_[0] eq 'Text::CSV'
1449 1 284 unless @_
1455 2 275 if (ref $hdrs eq "HASH")
1460 24 253 if ($c->{'out'} and not $c->{'sink'})
1462 4 14 if not $hdrs and ref $c->{'kh'} and $c->{'kh'} == \@internal_kh
1464 3 21 if (ref $in eq 'CODE') { }
10 11 elsif (@{$in;} == 0 or ref $in->[0] eq 'ARRAY') { }
1467 3 4 if (ref $row eq "ARRAY")
1471 4 0 if (ref $row eq "HASH")
1472 2 2 if ($hdr)
1473 3 0 unless $hdr{$_}
1482 0 10 if ref $hdrs
1484 2 10 if $c->{'cboi'}
1485 0 12 if $c->{'cbbo'}
1490 5 6 ref $hdrs ? :
1491 2 9 unless defined $hdrs
1493 19 1 unless $hdr{$_}
10 1 if ref $hdrs || $hdrs eq 'auto' and @hdrs
1497 0 17 if $c->{'cboi'}
1498 0 17 if $c->{'cbbo'}
1503 11 13 if $c->{'cls'}
1508 8 104 if (defined $c->{'hd_s'} or defined $c->{'hd_b'} or defined $c->{'hd_m'} or defined $c->{'hd_c'})
1510 4 145 if defined $c->{'hd_s'}
1511 0 149 if defined $c->{'hd_d'}
1512 0 8 $hdrs ? :
8 141 if defined $c->{'hd_m'}
1513 0 4 $hdrs ? :
4 145 if defined $c->{'hd_c'}
1516 145 4 if @hdr
1519 15 238 if ($c->{'kh'})
1521 5 10 unless ref $c->{'kh'} eq "ARRAY"
1526 27 221 if ($key)
1527 7 5 unless not ref $key or ref $key eq "ARRAY" and @$key > 1
1531 9 232 if ($val)
1532 1 8 unless $key
1533 3 2 unless not ref $val or ref $val eq "ARRAY" and @$val > 0
1536 5 232 if $c->{'fltr'} and grep /\D/, keys %{$$c{"fltr"};}
1537 197 40 if (defined $hdrs)
1538 45 152 if (not ref $hdrs) { }
1 151 elsif (ref $hdrs eq 'CODE') { }
1539 1 44 if ($hdrs eq 'skip') { }
42 2 elsif ($hdrs eq 'auto') { }
1 1 elsif ($hdrs eq 'lc') { }
1 0 elsif ($hdrs eq 'uc') { }
1543 0 42 unless my $h = $csv->getline($fh)
1544 121 1 unless $hdr{$_}
1547 0 1 unless my $h = $csv->getline($fh)
1551 0 1 unless my $h = $csv->getline($fh)
1556 0 1 unless my $h = $csv->getline($fh)
1560 10 187 if $c->{'kh'} and $hdrs
1563 16 221 if ($c->{'fltr'})
1567 7 9 if (ref $hdrs)
1570 5 16 if exists $f{$hdr[$_]}
1578 51 64 if @hdr
1579 63 52 unless $f{$FLD}->($CSV, $ROW)
1588 2 39 $frag ? :
196 41 ref $hdrs ? :
1591 0 196 if exists $h{''}
1592 0 196 unless (keys %h == @h)
1597 17 177 $key ? :
2 194 $frag ? :
1598 5 12 ref $key ? :
1599 2 15 if (my(@mk) = grep({not exists $h{$_};} grep({defined $_;} $k, @f)))
1604 22 4 defined $k ? :
1609 2 3 ref $val ? :
5 21 $val ? :
1618 235 0 if ($ref) { }
1619 4 145 if @row1 and not $c->{'hd_c'} and not ref $hdrs
1624 219 16 if $c->{'cls'}
1625 22 213 if ($ref and $c->{'cbai'} || $c->{'cboi'})
1627 21 1 ref $ref eq 'ARRAY' ? :
1629 34 37 if ref $r eq "HASH"
1630 30 41 if $c->{'cbai'}
1631 46 25 if $c->{'cboi'}
1635 6 229 if ($c->{'sink'})
1636 0 6 unless my $ro = ref $c->{'out'}
1638 1 5 if $ro eq "SCALAR" and ${$c->{'out'};} eq "skip"
1641 0 5 unless $ro eq ref $ref
1644 4 1 if ($ro eq "ARRAY")
1645 2 2 if (@{$c->{'out'};} and @$ref and ref $c->{'out'}[0] eq ref $ref->[0])
1652 1 0 if ($ro eq "HASH")
1664 1 228 unless defined wantarray
1685 26966 799 if ($self->{'_CACHE'}) { }
1689 799 0 if (defined $self->{'sep_char'})
1692 5 794 if (defined $self->{'sep'} and $self->{'sep'} ne "")
1696 5 0 if $sep_len > 1
1700 799 0 if (exists $self->{'quote_char'})
1702 795 4 if (defined $quote_char and length $quote_char) { }
1708 4 795 if (defined $self->{'quote'} and $self->{'quote'} ne "")
1712 4 0 if $quote_len > 1
1716 799 0 if (exists $self->{'escape_char'})
1718 791 8 if (defined $escape_char and length $escape_char) { }
1725 795 4 if (defined $self->{'eol'})
1730 42 753 if ($eol_len == 1 and $eol eq "\r")
1736 1 798 if (defined $self->{'undef_str'}) { }
1738 0 1 if utf8::is_utf8($self->{'undef_str'})
1742 12 787 if (defined $self->{'comment_str'})
1746 1 798 if (defined $self->{'_types'})
1751 4 795 if (defined $self->{'_is_bound'})
1755 265 534 if (defined $self->{'callbacks'})
1758 9 256 if (defined $cb->{'after_parse'} and ref $cb->{'after_parse'} eq "CODE")
1761 1 264 if (defined $cb->{'before_print'} and ref $cb->{'before_print'} eq "CODE")
1773 13583 0 defined $self->{$_} ? :
1776 2397 0 defined $self->{$_} ? :
1778 8 791 if ($ctx->{'escape_char'} eq "\0")
1790 89 27676 if ($ctx->{'is_bound'})
1792 75 14 if ($bound and ref $bound eq 'ARRAY') { }
1803 925 54 $ctx->{'eol'} =~ /\A[\015\012]/ ? :
521 979 $ctx->{'verbatim'} || $ctx->{'eol_len'} >= 2 ? :
1500 26265 $ctx->{'eol_len'} ? :
1806 14 40 if ($ctx->{'sep_len'} and $ctx->{'sep_len'} > 1 and _is_valid_utf8($ctx->{'sep'}))
1809 0 28 if ($ctx->{'quo_len'} and $ctx->{'quo_len'} > 1 and _is_valid_utf8($ctx->{'quo'}))
1818 867 22589 unless exists $self->{'_CACHE'}
1822 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') { }
1844 11 3212 if $len
1845 0 3223 $len == 1 ? :
1850 3 3374 if $len
1851 0 3377 $len == 1 ? :
1854 112 0 if (defined $value)
1858 75 37 $value eq "\r" ? :
1861 9 2 if (defined $value) { }
1863 1 8 if utf8::is_utf8($value)
1877 1 1 unless (exists $self->{'_CACHE'})
1898 1 0 if ($cache->{'sep_len'} and $cache->{'sep_len'} > 1)
1902 1 0 if ($cache->{'quo_len'} and $cache->{'quo_len'} > 1)
1905 0 1 if ($cache->{'types_len'}) { }
1910 0 1 if ($cache->{'bptr'})
1913 1 0 if ($cache->{'tmp'})
1920 23 4 defined $value ? :
23 4 defined $value ? :
1926 3 0 if (defined $value)
1930 3 0 defined $v ? :
1940 0 8 unless defined $str
1949 20233 173 unless $self->{'callbacks'}
1952 48 125 unless $cb and ref $cb eq "CODE"
1955 125 0 if (@res)
1956 64 61 if ref $res[0] eq "SCALAR" and ${$res[0];} eq "skip"
1972 2 21680 if (not defined $quot or $quot eq "\0")
1975 21680 2 if ($esc ne "" and $esc ne "\0")
1976 21678 2 if ($quot ne '') { }
1985 5 1 if ($n < 0 and $ctx->{'is_bound'})
1990 2 21680 $ctx->{'keep_meta_info'} >= 10 && @{[] unless $self->{'_FFLAGS'};} >= $n ? :
1996 14 53889 if ($bound) { }
1999 53889 0 if (@$fields > $i)
2003 0 53903 unless $v_ref
2007 56 53847 unless (defined $value)
2008 8 48 if ($ctx->{'undef_str'}) { }
2009 3 5 if ($ctx->{'undef_flg'})
2020 10 6 if (substr($value, 0, 1) eq "=" and $ctx->{'formula'})
2022 2 4 unless (defined $value)
2028 6282 47559 $ctx->{'always_quote'} ? :
2029 1406 52435 if ($value eq '') { }
2030 6 1400 if $ctx->{'quote_empty'} or $check_meta and $self->is_quoted($i)
2034 20041 32394 if (utf8::is_utf8($value))
2039 5 52430 if $check_meta and $self->is_quoted($i)
2041 46793 5642 if (not $must_be_quoted and $quot ne "")
2048 21559 23632 if $value =~ /\Q$quot\E/ or $sep ne "" and $sep ne "\0" and $value =~ /\Q$sep\E/ or $esc ne "" and $esc ne "\0" and $value =~ /\Q$esc\E/ or $ctx->{'quote_binary'} and $value =~ /[\x00-\x1f\x7f-\xa0]/ or $ctx->{'quote_space'} and $value =~ /[\x09\x20]/
2051 7 52428 if (not $ctx->{'binary'} and $value =~ /[^\x09\x20-\x7E]/)
2058 52426 2 if ($re_esc)
2061 52291 137 if ($ctx->{'escape_null'})
2066 29446 24388 if ($must_be_quoted)
2072 21667 4 defined $ctx->{'eol'} ? :
2080 0 37 unless my $fa = $ctx->{'formula'}
2081 3 34 if ($fa == 1)
2082 3 31 if ($fa == 2)
2084 6 25 if ($fa == 3)
2086 3 3 if ($ctx->{'recno'})
2091 1 5 if (ref $column_names eq "ARRAY" and @$column_names >= $i - 1)
2093 1 0 if defined $column_name
2099 5 20 if ($fa == 4)
2102 5 15 if ($fa == 5)
2106 15 0 if ($fa == 6)
2107 15 0 if (ref $self->{'_FORMULA_CB'} eq "CODE")
2120 5 20284 if (not defined $fields) { }
5 20279 elsif (ref $fields ne 'ARRAY') { }
2129 6 20278 unless $self->__combine(\$str, $fields, 1)
2133 1 20277 unless $io->print($str)
2147 5 3519 if ($state and ($ctx->{'has_hooks'} || 0) & 2)
2156 853 3552 if $ctx->{'eolx'} or $ctx->{'eol_is_cr'}
2158 2462 1943 if ($ctx->{'useIO'} = $useIO) { }
2162 175 2287 if ($ctx->{'has_ahead'} and defined $self->{'_AHEAD'})
2173 0 4405 if ($ctx->{'has_error_input'})
2182 27 4373 if ($ctx->{'strict'})
2184 12 15 if ($ctx->{'strict_n'} != $ctx->{'fld_idx'})
2185 8 4 unless ($ctx->{'useIO'} & 16)
2188 8 4 if ($last_error)
2194 2460 1940 if ($ctx->{'useIO'}) { }
2195 37 2423 if (defined $ctx->{'tmp'} and $ctx->{'used'} < $ctx->{'size'} and $ctx->{'has_ahead'}) { }
2199 509 1914 if ($ctx->{'useIO'} & 16)
2205 1584 876 if ($fflags)
2206 11 1573 if ($ctx->{'keep_meta_info'}) { }
2216 2 3791 if ($result and $ctx->{'types'})
2220 2 6 unless defined $value
2222 2 4 if ($type == IV()) { }
2 2 elsif ($type == NV()) { }
2238 30 4357 if not $ctx->{'utf8'} and $ctx->{'sep_len'}
2239 18 4369 if not $ctx->{'utf8'} and $ctx->{'quo_len'}
2240 1056 3331 if not $ctx->{'utf8'} and $ctx->{'eol_len'}
2249 227 14051 $_ eq "\000" ? :
17605 31 if defined $_
2258 147 155 if (not $waitingForField and $c eq "" and $hit ne "" and $ctx->{'useIO'} and not $ctx->{'useIO'} & 16)
2264 364 69891 if $seenSomething and $hit eq "" and $c eq ""
2267 22384 51605 unless ($v_ref)
2268 87 22297 if ($ctx->{'is_bound'}) { }
2275 4 22380 unless $v_ref
2283 45447 28538 if (defined $hit and $hit ne "")
2284 9657 35790 if ($waitingForField)
2285 18 2032 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A\Q$ctx->{'comment_str'}\E/)
2291 0 45429 if ($hit =~ /[^\x09\x20-\x7E]/)
2298 11488 63117 if (defined $c and defined $sep and $c eq $sep) { }
22919 40198 elsif (defined $c and defined $quot and $quot ne "\000" and $c eq $quot) { }
4655 35543 elsif (defined $c and defined $esc and $esc ne "\000" and $c eq $esc) { }
2433 33110 elsif (defined $c and $c eq "\n" || $c eq '' || defined $eol && $c eq $eol && $eol ne "\r") { }
1015 32095 elsif (defined $c and $c eq "\r" and not $ctx->{'verbatim'}) { }
2299 1174 10314 if ($waitingForField) { }
2186 8128 elsif ($ctx->{'flag'} & 1) { }
2302 53 1121 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2307 1174 0 unless ($ctx->{'is_bound'})
2311 8 1166 if ($ctx->{'keep_meta_info'} and $fflags)
2327 10935 11984 if ($waitingForField)
2334 11930 54 if ($ctx->{'flag'} & 1)
2340 4290 7640 if ($ctx->{'allow_whitespace'})
2344 1 89 if ($ctx->{'allow_loose_quotes'} and not defined $esc && $c2 eq $esc)
2352 1311 10619 unless (defined $c2)
2359 9017 1602 if (defined $c2 and defined $sep and $c2 eq $sep)
2367 323 1279 if (defined $c2 and $c2 eq "\n" || defined $eol && $c2 eq $eol)
2374 1258 21 if (defined $esc and $c eq $esc)
2376 51 1207 if (defined $c2 and $c2 eq 0)
2382 1077 130 if (defined $c2 and defined $quot and $c2 eq $quot)
2385 1 1076 if ($ctx->{'utf8'})
2391 4 1 if ($ctx->{'allow_loose_escapes'} and defined $c2 and $c2 ne "\r")
2399 90 57 if (defined $c2 and $c2 eq "\r")
2400 0 90 if ($ctx->{'eol_is_cr'})
2408 76 14 if (defined $c3 and $c3 eq "\n")
2415 1 13 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2416 0 1 if ($c3 eq "\r")
2422 1 0 unless ($c3 =~ /[^\x09\x20-\x7E]/)
2434 12 1 $quoesc ? :
2438 10 47 if ($ctx->{'allow_loose_quotes'} and not $quoesc)
2447 39 8 if ($quoesc)
2456 4 50 if ($ctx->{'allow_loose_quotes'}) { }
2466 34 4621 if ($waitingForField) { }
4612 9 elsif ($ctx->{'flag'} & 1) { }
9 0 elsif ($v_ref) { }
2468 4 30 if ($ctx->{'allow_unquoted_escape'})
2475 1 3 unless (defined $c2)
2480 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'}) { }
2489 0 2 if ($ctx->{'utf8'})
2501 3 4609 unless (defined $c2)
2506 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'}) { }
2515 0 4581 if ($ctx->{'utf8'})
2527 4 5 unless (defined $c2)
2541 23 37 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2544 0 23 unless (defined $c)
2552 222 2579 if ($waitingForField)
2555 16 206 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2560 221 1 unless ($ctx->{'is_bound'})
2563 14 208 if ($ctx->{'keep_meta_info'} and $fflags)
2568 779 1800 if ($ctx->{'flag'} & 1) { }
11 1789 elsif ($ctx->{'verbatim'}) { }
2572 29 750 unless ($ctx->{'binary'})
2582 1 10 unless ($ctx->{'binary'})
2586 8 2 unless $ctx->{'eol'} eq $c and $ctx->{'useIO'}
2591 4 15 if (not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1 and $ctx->{'useIO'} and $hit =~ /^sep=(.{1,16})$/i)
2595 4 0 if ($len <= 16)
2596 3 1 $len == 1 ? :
2608 113 902 if ($waitingForField)
2609 29 84 if ($ctx->{'eol_is_cr'})
2617 5 79 unless (defined $c2)
2621 0 5 unless $seenSomething
2624 69 10 if ($c2 eq "\n")
2631 5 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2632 0 5 if ($c2 eq "\n")
2639 2 3 unless ($c2 =~ /[^\x09\x20-\x7E]/)
2646 1 0 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2649 0 1 unless (defined $c)
2668 593 309 if ($ctx->{'flag'} & 1) { }
2672 70 523 unless ($ctx->{'binary'})
2679 163 146 if ($ctx->{'eol_is_cr'})
2686 130 16 if (defined $c2 and $c2 eq "\n")
2692 11 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2693 5 6 if (not $c2 =~ /[^\x09\x20-\x7E]/ or $c2 eq "\r")
2704 0 0 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2707 0 0 unless (defined $c)
2726 0 32095 if ($ctx->{'eolx'} and $c eq $eol)
2731 602 31493 if ($waitingForField)
2732 6 175 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A$ctx->{'comment_str'}/)
2736 231 365 if ($ctx->{'allow_whitespace'} and $self->__is_whitespace($ctx, $c))
2739 1 340 unless defined $c
2746 29407 2086 if ($ctx->{'flag'} & 1) { }
2747 3261 26146 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
2749 5 10 unless ($ctx->{'binary'} or $ctx->{'utf8'})
2756 450 1636 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
2757 3 447 if $ctx->{'useIO'} and not defined $c
2759 9 0 unless ($ctx->{'binary'} or $ctx->{'utf8'})
2767 3 7991 if $ctx->{'useIO'} and $ctx->{'verbatim'} and $ctx->{'used'} == $ctx->{'size'}
2771 343 55 if ($waitingForField)
2772 32 311 if ($seenSomething or not $ctx->{'useIO'})
2774 31 1 unless ($v_ref)
2775 0 31 if ($ctx->{'is_bound'}) { }
2782 0 31 unless $v_ref
2786 9 23 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2791 32 0 unless ($ctx->{'is_bound'})
2794 3 29 if ($ctx->{'keep_meta_info'} and $fflags)
2803 14 41 if ($ctx->{'flag'} & 1)
2808 41 0 if ($v_ref)
2816 2118 4185 if defined $ctx->{'tmp'} and $ctx->{'used'} <= 0
2817 0 4185 if $ctx->{'used'} < $ctx->{'size'}
2818 1365 2820 unless $ctx->{'useIO'}
2820 2308 512 if (defined $res) { }
147 365 elsif (delete $ctx->{'has_leftover'}) { }
2821 0 2308 if ($ctx->{'has_ahead'}) { }
2823 0 0 if $ctx->{'eol_len'}
2829 2308 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
2831 70 2238 if utf8::is_utf8($ctx->{'tmp'})
2839 147 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
2841 0 147 if utf8::is_utf8($ctx->{'tmp'})
2846 311 54 unless defined $ctx->{'tmp'}
2863 3 98 if ($i >= $ctx->{'is_bound'})
2867 98 0 if (ref $ctx->{'bound'} eq "ARRAY")
2869 98 0 if (ref $ref)
2870 14 84 if ($keep)
2873 83 1 unless (&Scalar::Util::readonly($$ref))
2885 0 17350 unless defined $ctx->{'used'}
2886 1355 15995 if ($ctx->{'used'} >= $ctx->{'size'})
2887 20 1335 if ($self->__get_from_src($ctx, $src))
2893 15995 0 if ($ctx->{'tmp'} =~ /\G($ctx->{'_re'}|.)/gs) { }
2895 1222 14773 if ($c =~ /[^\x09\012\015\x20-\x7e]/)
2901 0 0 if ($self->__get_from_src($ctx, $src))
2923 299 0 if $ctx->{'tmp'}
2930 535 4529 unless defined $c
2941 206 20482 if $ctx->{'utf8'}
2942 27 107 if ($ctx->{'formula'} and $$v_ref and substr($$v_ref, 0, 1) eq "=")
2944 22 3 defined $value ? :
2947 12 20649 if (!defined($$v_ref) || $$v_ref eq '' and $ctx->{'empty_is_undef'} || !($flag & 1) && $ctx->{'blank_is_undef'}) { }
2953 1725 18924 if ($ctx->{'allow_whitespace'} and not $flag & 1)
2956 2135 1571 if ($flag & 2 and $ctx->{'decode_utf8'} and $ctx->{'utf8'} || _is_valid_utf8($$v_ref))
2960 20580 81 unless ($ctx->{'is_bound'})
2963 88 20573 if ($ctx->{'keep_meta_info'} and $fflags)
2973 1447 137 $res ? :
2985 12 267 if ($offset < 0)
2994 12 597 if ($offset > 0)
2999 12 585 if ($n++ >= $tail and $tail)
3003 117 480 if (($ctx->{'has_hooks'} || 0) & 2)
3004 63 54 unless ($self->_hook("after_parse", \@row))
3012 12 56 if defined $len and $n >= $len and $offset >= 0
3015 8 271 if (defined $len and $n > $len)
3023 2074 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 ? :
3045 0 1 if (defined $pos)
3054 4 2 if ($self and (&Scalar::Util::reftype($self) || '') eq 'HASH' || ref($self) =~ /^Text::CSV/)
3070 6 1660 if ($error == 0)
3076 312 1354 if ($error == 2012)
3079 262 1404 if ($ctx->{'auto_diag'})
3088 1666 1847 if (ref $self) { }
3096 917 2593 if (defined $errstr)
3118 4360 0 ref $left ? :