Branch Coverage

blib/lib/Text/CSV_PP.pm
Criterion Covered Total %
branch 1359 1550 87.6


line true false branch
139 0 39 if ($] < 5.006) { }
0 39 elsif ($] < 5.008) { }
0 39 elsif (not defined &utf8::is_utf8) { }
140 0 0 unless $INC{'bytes.pm'}
157 0 39 if ($@)
159 0 0 if ($@) { }
174 0 0 unless length ref $r
177 0 0 length ref $$r ? :
0 0 exists $tmap{$t} ? :
271 12184 3573 unless $aw
274 3571 2 unless defined $quo and length $quo
277 242 3331 if defined $quo and $quo =~ /^[ \t]/
278 290 3041 if defined $esc and $esc =~ /^[ \t]/
288 12416 35 unless defined $sep and length $sep
290 12433 18 unless defined $quo and length $quo
298 2 12449 unless $sep ne ""
299 1 12448 if length $sep > 16
300 6 12442 if $sep =~ /[\r\n]/
302 12431 11 if (defined $quo)
303 228 12203 if $quo eq $sep
304 1 12202 if length $quo > 16
305 6 12196 if $quo =~ /[\r\n]/
307 12191 16 if (defined $esc)
308 168 12023 if $esc eq $sep
309 6 12017 if $esc =~ /[\r\n]/
311 12028 5 if (defined $eol)
312 1 12027 if length $eol > 16
327 1 1024 unless my $class = ref $proto || $proto
328 8 1016 if @_ > 0 and ref $_[0] ne "HASH"
331 2800 1 /^[a-zA-Z]\w+$/ ? :
332 21 2780 if exists $attr_alias{$k}
337 10 1006 if (exists $attr{'sep'})
342 25 991 if (exists $attr{'quote'})
347 12 1004 if exists $attr{'formula_handling'}
351 2758 6 if (/^[a-z]/ and exists $def_attr{$_})
353 216 2542 if defined $attr{$_} and /_char$/
358 1 6 if $attr{'auto_diag'}
361 10 999 if ($sep_aliased)
363 6 4 if (@b > 1) { }
371 21 988 if ($quote_aliased and defined $attr{'quote_char'})
373 7 14 if (@b > 1) { }
383 35 974 if (my $ec = _check_sanity($self))
385 1 34 if $attr{'auto_diag'}
388 6 968 if (defined $self->{'callbacks'} and ref $self->{'callbacks'} ne "HASH")
394 8 966 if defined $\ and not exists $attr{'eol'}
396 1 973 if defined $self->{'types'}
397 974 0 if defined $self->{'skip_empty_rows'}
398 36 938 if defined $attr_formula
456 11101 8 if defined $val
458 910 10199 if $ec = _check_sanity($self)
465 1 5645 unless defined $val
481 3601 1235 if (@_)
490 11 9 if (@_)
492 1 10 unless defined $quote
495 5 6 if (@b > 1) { }
496 1 4 if @b > 16
506 1 9 if $ec
511 6 12 if (defined $quote and length $quote) { }
516 3595 1232 if (@_)
519 6 3474 unless $ec
526 3913 1243 if (@_)
535 327 33 if (@_)
537 1 326 unless defined $sep
540 13 314 if (@b > 1) { }
541 1 12 if @b > 16
551 1 322 if $ec
556 21 334 if (defined $sep and length $sep) { }
561 227 53 if (@_)
563 129 98 unless defined $eol
564 1 226 if length $eol > 16
578 1800 1233 if @_
584 6 4 if @_
590 3 2 if @_
596 4 2 if @_
604 6 1 if @_
610 12 9 if @_
616 1 1 if @_
622 1 1 if @_
628 1 994 unless defined $f
629 5 56 if ($self and $f and ref $f and ref $f eq "CODE")
639 0 0 $f =~ /^(?: 6 | cb )$/xi ? :
5 0 $f =~ /^(?: 5 | error )$/xi ? :
6 5 $f =~ /^(?: 4 | croak )$/xi ? :
6 11 $f =~ /^(?: 3 | die )$/xi ? :
7 17 $f =~ /^(?: 2 | eof | stop )$/xi ? :
32 24 $f =~ /^(?: 1 | skip )$/xi ? :
933 56 if ($f =~ /^(?: 0 | undef )$/xi) { }
647 21 2 if @_
649 22 1 unless $ser == 6
652 3 1 $ser == 5 ? :
3 4 $ser == 4 ? :
3 7 $ser == 3 ? :
5 10 $ser == 2 ? :
8 15 if ($ser <= 1) { }
659 0 17 if $em =~ s/^\d+$//
660 0 17 $em =~ /[;\n]$/ ? :
666 1 102 unless defined $f
667 6 83 if ($self and $f and ref $f and ref $f eq "CODE")
677 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 if ($f =~ /^(?: 0 | none )$/xi) { }
685 29 15 if @_
686 36 2 unless $self->{'formula'} == 6
696 1 1 if @_
702 11 1 if (@_)
704 2 9 if not defined $v or $v eq ""
705 1 1 lc $v eq 'false' ? :
2 9 unless $v =~ /^[0-9]/
713 11 1 if @_
719 11 1 if @_
725 3725 1229 if (@_)
727 4 3721 if _unhealthy_whitespace($self, $aw)
736 3 1 if @_
742 2 1 if @_
748 1 1 if @_
754 7 2 if @_
760 11 1 if (@_)
762 9 2 defined $v ? :
770 14 1 if (@_)
772 13 1 defined $v ? :
780 9 3 if (@_)
782 2 7 if not defined $v or $v eq ""
783 1 1 lc $v eq 'false' ? :
2 7 unless $v =~ /^[0-9]/
791 8 2 if (@_)
793 2 6 if not defined $v or $v eq ""
794 1 1 lc $v eq 'false' ? :
2 6 unless $v =~ /^[0-9]/
817 2 5 if (@_) { }
818 1 1 if (my $types = shift()) { }
837 44 30 if (@_)
840 42 2 if (defined $_[0]) { }
1 1 elsif (@_ > 1) { }
841 2 40 if grep {not defined $_;} @_
842 27 5 @_ % 2 == 0 ? :
8 32 @_ == 1 && ref $_[0] eq 'HASH' ? :
848 14 23 unless $cbk =~ /^[\w.]+$/ and ref $cb->{$cbk} eq "CODE"
851 3 18 if exists $cb->{'error'}
852 18 3 if exists $cb->{'after_parse'}
853 1 20 if exists $cb->{'before_print'}
875 1685 108 if ($self and ref $self and (UNIVERSAL::isa($self, __PACKAGE__) and exists $self->{'_ERROR_DIAG'}))
879 388 1297 if exists $self->{'_ERROR_POS'}
881 388 1297 if exists $self->{'_ERROR_FLD'}
882 37 346 if exists $self->{'_ERROR_SRC'} and $self->{'diag_verbose'}
885 10 323 if $diag[0] and $self->{'callbacks'} and $self->{'callbacks'}{'error'}
890 387 1467 unless (defined $context)
891 80 307 if ($diag[0] and $diag[0] != 2012)
893 69 11 if $diag[4]
894 16 64 if $diag[5]
896 4 76 unless ($self and ref $self)
903 16 0 if $self->{'diag_verbose'} and $self->{'_ERROR_INPUT'}
907 73 3 if ($lvl < 2)
909 0 72 if (@c >= 11 and $c[10] and ref $c[10] eq "HASH")
913 0 0 if exists $hints->{'autodie'} and $hints->{'autodie'} or exists $hints->{'guard Fatal'} and not exists $hints->{'no Fatal'}
920 3 73 $lvl > 1 ? :
925 268 1199 $context ? :
940 1400 1 ref $self->{'_STRING'} ? :
950 1616 1 ref $self->{'_FIELDS'} ? :
959 16 5 ref $self->{'_FFLAGS'} ? :
965 2 24 unless ref $self->{'_FFLAGS'} and $idx >= 0 and $idx < @{$self->{'_FFLAGS'};}
966 10 14 $self->{'_FFLAGS'}[$idx] & CSV_FLAGS_IS_QUOTED() ? :
972 2 8 unless ref $self->{'_FFLAGS'} and $idx >= 0 and $idx < @{$self->{'_FFLAGS'};}
973 4 4 $self->{'_FFLAGS'}[$idx] & CSV_FLAGS_IS_BINARY() ? :
978 8 11 if $idx < 0 or not ref $self->{'_FFLAGS'}
979 1 10 if $idx >= @{$self->{'_FFLAGS'};}
980 4 6 $self->{'_FFLAGS'}[$idx] & CSV_FLAGS_IS_MISSING() ? :
1003 4 1958 if ref $str
1008 1744 211 if (defined $str and $self->__parse($fields, $fflags, $str, 0)) { }
1025 294 43 defined $self->{'_COLUMN_NAMES'} ? :
337 691 unless @keys
1027 138 553 if @keys == 1 and not defined $keys[0]
1029 228 325 if (@keys == 1 and ref $keys[0] eq 'ARRAY') { }
5 320 elsif (join '', map({defined $_ ? ref $_ : '';} @keys)) { }
1032 714 1 defined $_ ? :
1036 1 547 if $self->{'_BOUND_COLUMNS'} and @keys != @{$self->{'_BOUND_COLUMNS'};}
1039 1280 1 defined $_ ? :
1046 1 333 unless $fh
1050 18 208 if (ref $_ eq "ARRAY")
1054 207 1 if (ref $_ eq "HASH")
1062 1 331 if defined $args{'munge'} and not defined $args{'munge_column_names'}
1063 169 163 unless defined $args{'detect_bom'}
1064 324 8 unless defined $args{'set_column_names'}
1065 311 21 unless defined $args{'munge_column_names'}
1070 324 8 if $args{'set_column_names'}
1071 324 8 if $args{'set_column_names'}
1074 27 305 if (defined $args{'sep_set'})
1075 5 22 unless ref $args{'sep_set'} eq "ARRAY"
1080 0 327 if $^O eq "MSWin32"
1083 2 325 unless defined $hdr and $hdr ne ""
1086 285 40 unless @seps
1088 322 412 if index($hdr, $sep) != -1
1091 4 321 if keys %sep >= 2
1095 320 1 if ($args{'detect_bom'})
1096 24 296 if ($hdr =~ s/^\x00\x00\xfe\xff//) { }
24 272 elsif ($hdr =~ s/^\xff\xfe\x00\x00//) { }
25 247 elsif ($hdr =~ s/^\xfe\xff//) { }
24 223 elsif ($hdr =~ s/^\xff\xfe//) { }
48 175 elsif ($hdr =~ s/^\xef\xbb\xbf//) { }
1 174 elsif ($hdr =~ s/^\xf7\x64\x4c//) { }
1 173 elsif ($hdr =~ s/^\xdd\x73\x66\x73//) { }
1 172 elsif ($hdr =~ s/^\x0e\xfe\xff//) { }
1 171 elsif ($hdr =~ s/^\xfb\xee\x28//) { }
1 170 elsif ($hdr =~ s/^\x84\x31\x95\x33//) { }
36 134 elsif ($hdr =~ s/^\x{feff}//) { }
1108 150 170 $enc ? :
1110 6 314 if $hdr eq ""
1112 144 170 if ($enc)
1113 0 144 if $ebcdic and $enc eq "utf-ebcdic"
1114 48 96 if ($enc =~ /([13]).le$/)
1120 144 0 if ($enc)
1121 96 48 if ($enc ne "utf-8")
1131 1 314 if ($hdr and $hdr =~ s/\Asep=(\S)([\r\n]+)//i)
1133 1 0 unless length $hdr
1136 142 173 if ($hdr =~ s/^([^\r\n]+)([\r\n]+)([^\r\n].+)\z/$1/s)
1142 0 315 unless open my $h, "<", $hr
1144 2 313 unless my $row = $self->getline($h)
1147 294 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') { }
1161 142 171 if ($ahead)
1164 72 70 if $eol =~ /^\r([^\n]|\z)/
1169 2 311 if ref $args{'munge_column_names'} eq "CODE"
1171 2 1 unless $args{'munge_column_names'}{$_}
1 312 if ref $args{'munge_column_names'} eq "HASH"
1173 2 311 if exists $hdr{''}
1174 1 310 unless (keys %hdr == @hdr)
1178 302 8 if $args{'set_column_names'}
1179 195 115 wantarray ? :
1186 2 2 defined $self->{'_BOUND_COLUMNS'} ? :
4 32 unless @refs
1187 5 27 if (@refs == 1 and not defined $refs[0])
1192 1 26 if $self->{'_COLUMN_NAMES'} and @refs != @{$self->{'_COLUMN_NAMES'};}
1194 74627 5 ref $_ eq 'SCALAR' ? :
2 24 if join "", map({ref $_ eq "SCALAR" ? "" : "*";} @refs)
1204 1 131 unless $self->{'_COLUMN_NAMES'}
1205 3 128 unless my $fr = $self->getline(@args)
1206 5 123 if (ref $self->{'_FFLAGS'})
1208 5 0 @{$fr;} ? :
1210 2 1 if @{$fr;} == 1 and !defined($fr->[0]) || $fr->[0] eq ''
1219 2 249 unless $self->{'_COLUMN_NAMES'}
1230 1 33 @f == 1 && !defined($f[0]) ? :
1231 32 2 unless (length $eol)
1240 1 2 unless $self->{'_COLUMN_NAMES'}
1241 1 1 unless ref $hr eq "HASH"
1252 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
1264 21 17 if ($type eq "cell")
1269 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
1273 19 17 unless defined $brr
1274 4 26 if $tlr == 0 or $tlc == 0 or $brr ne "*" and $brr == 0 || $brr < $tlr or $brc ne "*" and $brc == 0 || $brc < $tlc
1279 26 2 unless $brc eq "*"
1280 14 14 unless defined $min_row
1281 1 27 if $tlr < $min_row
1282 19 9 if $brr eq "*" or $brr > $max_row
1288 44 33 if ++$r < $min_row
1293 32 45 if $r < $tlr or $brr ne "*" and $r > $brr
1294 36 9 if not defined $lc or $tlc < $lc
1295 5 40 $brc eq '*' ? :
1299 2 31 if (@h)
1303 10 23 if $max_row ne "*" and $r == $max_row
1312 0 25 unless my($from, $to) = /^\s* ([0-9]+) (?: \s* - \s* ([0-9]+ | \* ))? \s* $/x
1315 2 23 if $to eq "*"
1317 3 22 if $from <= 0 or $to < $from
1322 5 9 if $type eq "col"
1326 64 45 if ($type eq "row")
1327 20 44 if ($r > $#r and $eod or $r[$r])
1329 3 17 if (@h)
1336 126 279 $_ > $#r && $eod || $r[$_] ? :
1337 9 36 if (@h)
1349 4 341 @_ == 1 && ref $_[0] eq 'HASH' ? :
0 345 unless my(%attr) = @_ == 1 && ref $_[0] eq 'HASH' ? %{$_[0];} : @_
1355 42 303 if $enc eq "auto"
1356 0 345 $enc =~ s/(:\w.*)// ? :
1357 3 342 if $enc =~ /^[-\w.]+$/
1390 3 342 unless my $in = delete $attr{'in'} || delete $attr{'file'}
1392 1 341 exists $attr{'out'} && !$attr{'out'} ? :
1394 25 317 if ref $in eq "CODE" or ref $in eq "ARRAY"
1397 2 5 if ($in and $out and !ref($in) || ref $in eq 'GLOB' || ref \$in eq 'GLOB' and !ref($out) || ref $out eq 'GLOB' || ref \$out eq 'GLOB')
1399 2 5 if (ref $out or 'GLOB' eq ref \$out) { }
1403 0 5 unless open $fho, ">", $out
1404 0 5 if (my $e = $attr{'encoding'})
1406 0 0 if $hd_b
1410 1 6 if ($cboi and not $cbai)
1414 2 5 if ($cbai) { }
1431 33 309 if ($out)
1432 5 28 if (ref $out and 'ARRAY' eq ref $out || 'HASH' eq ref $out) { }
14 14 elsif (ref $out and 'SCALAR' ne ref $out or 'GLOB' eq ref \$out) { }
2 12 elsif (ref $out and 'SCALAR' eq ref $out and defined ${$out;} and ${$out;} eq 'skip') { }
1444 1 11 unless open $fh, ">", $out
1447 25 7 if ($fh)
1448 1 24 if ($enc)
1452 18 7 unless (defined $attr{'eol'} or defined $fho)
1454 1 17 grep(/crlf/, @layers) ? :
1459 24 317 if (ref $in eq 'CODE' or ref $in eq 'ARRAY') { }
30 287 elsif (ref $in eq 'SCALAR') { }
18 269 elsif (ref $in or 'GLOB' eq ref \$in) { }
1465 0 30 unless open $fh, "<", $in
1469 0 18 if (not ref $in and $] < 5.008005) { }
1477 1 267 unless open $fh, "<$enc", $in
1480 0 339 unless $fh or $sink
1487 6 1011 if exists $attr{$f} and not exists $attr{$t}
1492 2 8 unless @{$_[1];} > 1
1493 26 0 if defined $_
1494 26 0 if defined $_
1497 3 0 if defined $fltr and not ref $fltr and exists $fltr{$fltr}
1498 2 337 if ref $fltr eq "CODE"
1499 323 16 unless ref $fltr eq "HASH"
1503 308 31 unless defined $attr{'auto_diag'}
1504 338 1 unless defined $attr{'escape_null'}
1505 0 339 unless my $csv = delete $attr{'csv'} || 'Text::CSV_PP'->new(\%attr)
1507 1 338 if defined $form
1508 1 338 if defined $cboe
1510 8 11 if $kh and not ref $kh and $kh =~ /^(?:1|yes|true|internal|auto)$/i
1541 0 345 if @_ and ref $_[0] eq __PACKAGE__ || ref $_[0] eq 'Text::CSV'
1542 1 345 unless @_
1548 2 337 if (ref $hdrs eq "HASH")
1553 24 315 if ($c->{'out'} and not $c->{'sink'})
1555 4 14 if not $hdrs and ref $c->{'kh'} and $c->{'kh'} == \@internal_kh
1557 3 21 if (ref $in eq 'CODE') { }
10 11 elsif (@{$in;} == 0 or ref $in->[0] eq 'ARRAY') { }
1560 3 4 if (ref $row eq "ARRAY")
1564 4 0 if (ref $row eq "HASH")
1565 2 2 if ($hdr)
1566 3 0 unless $hdr{$_}
1575 0 10 if ref $hdrs
1577 2 10 if $c->{'cboi'}
1578 0 12 if $c->{'cbbo'}
1583 5 6 ref $hdrs ? :
1584 2 9 unless defined $hdrs
1586 19 1 unless $hdr{$_}
10 1 if ref $hdrs || $hdrs eq 'auto' and @hdrs
1590 0 17 if $c->{'cboi'}
1591 0 17 if $c->{'cbbo'}
1596 11 13 if $c->{'cls'}
1597 0 24 if $c->{'fho_cls'}
1602 8 141 if (defined $c->{'hd_s'} or defined $c->{'hd_b'} or defined $c->{'hd_m'} or defined $c->{'hd_c'})
1605 3 161 if not defined $c->{'hd_s'} and $c->{'attr'}{'sep_char'}
1607 3 158 if not defined $c->{'hd_s'} and $c->{'attr'}{'sep'}
1608 16 158 if defined $c->{'hd_s'}
1609 162 12 if defined $c->{'hd_b'}
1610 0 8 $hdrs ? :
8 166 if defined $c->{'hd_m'}
1611 0 4 $hdrs ? :
4 170 if defined $c->{'hd_c'}
1614 167 4 if @hdr
1617 15 297 if ($c->{'kh'})
1619 5 10 unless ref $c->{'kh'} eq "ARRAY"
1624 27 280 if ($key)
1625 7 5 unless not ref $key or ref $key eq "ARRAY" and @{$key;} > 1
1629 9 291 if ($val)
1630 1 8 unless $key
1631 3 2 unless not ref $val or ref $val eq "ARRAY" and @{$val;} > 0
1634 5 291 if $c->{'fltr'} and grep /\D/, keys %{$$c{"fltr"};}
1635 224 72 if (defined $hdrs)
1636 52 172 if (not ref $hdrs or ref $hdrs eq "CODE")
1637 1 51 $c->{'hd_b'} ? :
1642 1 51 if (ref $hdrs) { }
1 50 elsif ($hdrs eq 'skip') { }
48 2 elsif ($hdrs eq 'auto') { }
1 1 elsif ($hdrs eq 'lc') { }
1 0 elsif ($hdrs eq 'uc') { }
1643 0 1 unless $has_h
1651 0 48 unless $has_h
1652 135 1 unless $hdr{$_}
1655 0 1 unless $has_h
1659 0 1 unless $has_h
1663 10 214 if $c->{'kh'} and $hdrs
1666 16 280 if ($c->{'fltr'})
1670 7 9 if (ref $hdrs)
1673 5 16 if exists $f{$hdr[$_]}
1681 51 64 if @hdr
1682 63 52 unless $f{$FLD}->($CSV, $ROW)
1691 2 71 $frag ? :
223 73 ref $hdrs ? :
1694 0 223 if exists $h{''}
1695 0 223 unless (keys %h == @h)
1700 17 204 $key ? :
2 221 if ($frag) { }
17 204 elsif ($key) { }
1701 5 12 ref $key ? :
1702 2 15 if (my(@mk) = grep({not exists $h{$_};} grep({defined $_;} $k, @f)))
1707 22 4 defined $k ? :
1712 2 3 ref $val ? :
5 21 $val ? :
1721 288 0 if ($ref) { }
1722 4 165 if @row1 and not $c->{'hd_c'} and not ref $hdrs
1727 270 18 if $c->{'cls'}
1728 0 288 if $c->{'fho_cls'}
1729 23 265 if ($ref and $c->{'cbai'} || $c->{'cboi'})
1731 22 1 ref $ref eq 'ARRAY' ? :
1733 34 40 if ref $r eq "HASH"
1734 33 41 if $c->{'cbai'}
1735 46 28 if $c->{'cboi'}
1739 14 274 if ($c->{'sink'})
1740 7 7 unless my $ro = ref $c->{'out'}
1742 2 5 if $ro eq "SCALAR" and ${$c->{'out'};} eq "skip"
1745 0 5 unless $ro eq ref $ref
1748 4 1 if ($ro eq "ARRAY")
1749 2 2 if (@{$c->{'out'};} and @$ref and ref $c->{'out'}[0] eq ref $ref->[0])
1756 1 0 if ($ro eq "HASH")
1768 1 273 unless defined wantarray
1791 27310 912 if ($self->{'_CACHE'}) { }
1795 912 0 if (defined $self->{'sep_char'})
1798 5 907 if (defined $self->{'sep'} and $self->{'sep'} ne "")
1802 5 0 if $sep_len > 1
1806 912 0 if (exists $self->{'quote_char'})
1808 908 4 if (defined $quote_char and length $quote_char) { }
1814 4 908 if (defined $self->{'quote'} and $self->{'quote'} ne "")
1818 4 0 if $quote_len > 1
1822 912 0 if (exists $self->{'escape_char'})
1824 904 8 if (defined $escape_char and length $escape_char) { }
1831 907 5 if (defined $self->{'eol'})
1836 42 865 if ($eol_len == 1 and $eol eq "\r") { }
57 808 elsif ($eol_len == 1 and $eol eq "\n") { }
51 1509 elsif ($eol_len == 2 and $eol eq "\r\n") { }
1849 1 911 if (defined $self->{'undef_str'}) { }
1851 0 1 if utf8::is_utf8($self->{'undef_str'})
1855 21 891 if (defined $self->{'comment_str'})
1859 1 911 if (defined $self->{'_types'})
1864 12 900 if (defined $self->{'_is_bound'})
1868 324 588 if (defined $self->{'callbacks'})
1871 16 308 if (defined $cb->{'after_parse'} and ref $cb->{'after_parse'} eq "CODE")
1874 3 321 if (defined $cb->{'before_print'} and ref $cb->{'before_print'} eq "CODE")
1886 16416 0 defined $self->{$_} ? :
1889 2736 0 defined $self->{$_} ? :
1891 8 904 if ($ctx->{'escape_char'} eq "\0")
1903 121 28101 if ($ctx->{'is_bound'})
1905 107 14 if ($bound and ref $bound eq 'ARRAY') { }
1916 933 54 $ctx->{'eol'} =~ /\A[\015\012]/ ? :
507 987 $ctx->{'verbatim'} || $ctx->{'eol_len'} >= 2 ? :
1494 26728 $ctx->{'eol_len'} ? :
1918 1029 2646 if ($ctx->{'eol_type'} and $ctx->{'strict_eol'} and not $ctx->{'eol'})
1921 13 40 if ($ctx->{'sep_len'} and $ctx->{'sep_len'} > 1 and _is_valid_utf8($ctx->{'sep'}))
1924 0 28 if ($ctx->{'quo_len'} and $ctx->{'quo_len'} > 1 and _is_valid_utf8($ctx->{'quo'}))
1928 2 25 if ($ctx->{'strict'} and not $ctx->{'strict_n'} and $self->{'_COLUMN_NAMES'} and ref $self->{'_COLUMN_NAMES'} eq "ARRAY")
1936 1976 900 if $c eq "\n"
1937 109 791 if $c eq "\r"
1943 630 2707 if (not $ctx->{'eol_type'})
1951 0 32 unless exists $self->{'_CACHE'}
1955 0 32 if $eol_type == 1
1956 0 32 if $eol_type == 2
1957 21 11 if $eol_type == 3
1958 0 11 if $eol_type == 4
1964 995 23327 unless exists $self->{'_CACHE'}
1968 2 23325 if (not defined $key) { }
3122 20203 elsif ($key eq 'sep_char') { }
3369 16834 elsif ($key eq 'quote_char') { }
251 16583 elsif ($key eq '_has_ahead') { }
11 16572 elsif ($key eq '_has_hooks') { }
12 16560 elsif ($key eq '_is_bound') { }
3223 13337 elsif ($key eq 'sep') { }
3377 9960 elsif ($key eq 'quote') { }
218 9742 elsif ($key eq 'eol') { }
11 9731 elsif ($key eq 'undef_str') { }
1990 11 3212 if $len
1991 0 3223 $len == 1 ? :
1996 3 3374 if $len
1997 0 3377 $len == 1 ? :
2001 218 0 defined $value ? :
2002 4 4 $len == 2 && $value eq "\r\n" ? :
75 8 $len == 1 && $value eq "\r" ? :
4 83 $len == 1 && $value eq "\n" ? :
131 87 $len == 0 ? :
2007 75 143 $cache->{'eol_type'} == 2 ? :
2010 9 2 if (defined $value) { }
2012 1 8 if utf8::is_utf8($value)
2026 1 1 unless (exists $self->{'_CACHE'})
2047 1 0 if ($cache->{'sep_len'} and $cache->{'sep_len'} > 1)
2051 1 0 if ($cache->{'quo_len'} and $cache->{'quo_len'} > 1)
2054 0 1 if ($cache->{'types_len'}) { }
2059 0 1 if ($cache->{'bptr'})
2062 1 0 if ($cache->{'tmp'})
2069 25 6 defined $value ? :
25 6 defined $value ? :
2075 3 0 if (defined $value)
2079 3 0 defined $v ? :
2089 0 8 unless defined $str
2098 20235 218 unless $self->{'callbacks'}
2101 66 152 unless $cb and ref $cb eq "CODE"
2104 152 0 if (@res)
2105 64 88 if ref $res[0] eq "SCALAR" and ${$res[0];} eq "skip"
2121 2 21706 if (not defined $quot or $quot eq "\0")
2124 21706 2 if ($esc ne "" and $esc ne "\0")
2125 21704 2 if ($quot ne '') { }
2134 5 1 if ($n < 0 and $ctx->{'is_bound'})
2139 2 21706 $ctx->{'keep_meta_info'} >= 10 && @{[] unless $self->{'_FFLAGS'};} >= $n ? :
2145 14 53991 if ($bound) { }
2148 53991 0 if (@$fields > $i)
2152 0 54005 unless $v_ref
2156 56 53949 unless (defined $value)
2157 8 48 if ($ctx->{'undef_str'}) { }
2158 3 5 if ($ctx->{'undef_flg'})
2169 10 6 if (substr($value, 0, 1) eq "=" and $ctx->{'formula'})
2171 2 4 unless (defined $value)
2177 6282 47661 $ctx->{'always_quote'} ? :
2178 1414 52529 if ($value eq '') { }
2179 6 1408 if $ctx->{'quote_empty'} or $check_meta and $self->is_quoted($i)
2183 20041 32488 if (utf8::is_utf8($value))
2188 5 52524 if $check_meta and $self->is_quoted($i)
2190 46887 5642 if (not $must_be_quoted and $quot ne "")
2197 21561 23724 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]/
2200 7 52522 if (not $ctx->{'binary'} and $value =~ /[^\x09\x20-\x7E]/)
2207 52520 2 if ($re_esc)
2210 52308 214 if ($ctx->{'escape_null'})
2215 29448 24488 if ($must_be_quoted)
2221 21691 6 defined $ctx->{'eol'} ? :
2229 0 37 unless my $fa = $ctx->{'formula'}
2230 3 34 if ($fa == 1)
2231 3 31 if ($fa == 2)
2233 6 25 if ($fa == 3)
2235 3 3 if ($ctx->{'recno'})
2240 1 5 if (ref $column_names eq "ARRAY" and @$column_names >= $i - 1)
2242 1 0 if defined $column_name
2248 5 20 if ($fa == 4)
2251 5 15 if ($fa == 5)
2255 15 0 if ($fa == 6)
2256 15 0 if (ref $self->{'_FORMULA_CB'} eq "CODE")
2269 5 20310 if (not defined $fields) { }
5 20305 elsif (ref $fields ne 'ARRAY') { }
2278 6 20304 unless $self->__combine(\$str, $fields, 1)
2282 1 20303 unless $io->print($str)
2295 5 3900 if ($state and ($ctx->{'has_hooks'} || 0) & 2)
2304 916 4116 if $ctx->{'eolx'} or $ctx->{'eol_is_cr'}
2306 3080 1952 if ($ctx->{'useIO'} = $useIO) { }
2310 231 2849 if ($ctx->{'has_ahead'} and defined $self->{'_AHEAD'})
2321 0 5032 if ($ctx->{'has_error_input'})
2330 60 4961 if ($ctx->{'strict'})
2331 11 49 $ctx->{'is_bound'} ? :
2332 20 40 if ($nf and not $ctx->{'strict_n'})
2335 25 35 if ($ctx->{'strict_n'} > 0 and $nf != $ctx->{'strict_n'})
2336 18 7 unless ($ctx->{'useIO'} & 16)
2337 16 1 unless ($last_error or not $ctx->{'useIO'} and $ctx->{'has_ahead'})
2341 20 5 if ($last_error)
2347 3072 1949 if ($ctx->{'useIO'}) { }
2348 94 2978 if (defined $ctx->{'tmp'} and $ctx->{'used'} < $ctx->{'size'} and $ctx->{'has_ahead'}) { }
2352 582 2396 if ($ctx->{'useIO'} & 16)
2358 1956 1116 if ($fflags)
2359 11 1945 if ($ctx->{'keep_meta_info'}) { }
2369 2 4317 if ($result and $ctx->{'types'})
2373 2 6 unless defined $value
2375 2 4 if ($type == IV()) { }
2 2 elsif ($type == NV()) { }
2391 30 4984 if not $ctx->{'utf8'} and $ctx->{'sep_len'}
2392 18 4996 if not $ctx->{'utf8'} and $ctx->{'quo_len'}
2393 1123 3891 if not $ctx->{'utf8'} and $ctx->{'eol_len'}
2402 227 15999 $_ eq "\000" ? :
20112 32 if defined $_
2411 147 155 if (not $waitingForField and $c eq "" and $hit ne "" and $ctx->{'useIO'} and not $ctx->{'useIO'} & 16)
2417 371 71404 if $seenSomething and $hit eq "" and $c eq ""
2420 24070 52027 unless ($v_ref)
2421 152 23918 if ($ctx->{'is_bound'}) { }
2428 4 24066 unless $v_ref
2437 46993 29100 if (defined $hit and $hit ne "")
2438 10901 36092 if ($waitingForField)
2439 29 2475 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A\Q$ctx->{'comment_str'}\E/)
2441 6 23 $ctx->{'strict_n'} ? :
2443 1 28 unless ($ctx->{'useIO'})
2450 0 46964 if ($hit =~ /[^\x09\x20-\x7E]/)
2457 12548 64251 if (defined $c and defined $sep and $c eq $sep) { }
23321 40930 elsif (defined $c and defined $quot and $quot ne "\000" and $c eq $quot) { }
4655 36275 elsif (defined $c and defined $esc and $esc ne "\000" and $c eq $esc) { }
2702 33573 elsif (defined $c and $c eq "\n" || $c eq '' || defined $eol && $c eq $eol && $eol ne "\r") { }
1255 32318 elsif (defined $c and $c eq "\r" and not $ctx->{'verbatim'}) { }
2458 1311 11237 if ($waitingForField) { }
2195 9042 elsif ($ctx->{'flag'} & 1) { }
2461 53 1258 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2466 1311 0 unless ($ctx->{'is_bound'})
2470 8 1303 if ($ctx->{'keep_meta_info'} and $fflags)
2486 11127 12194 if ($waitingForField)
2493 12126 68 if ($ctx->{'flag'} & 1)
2499 4290 7836 if ($ctx->{'allow_whitespace'})
2503 1 89 if ($ctx->{'allow_loose_quotes'} and not defined $esc && $c2 eq $esc)
2511 1313 10813 unless (defined $c2)
2518 9089 1724 if (defined $c2 and defined $sep and $c2 eq $sep)
2526 362 1362 if (defined $c2 and $c2 eq "\n" || defined $eol && $c2 eq $eol)
2530 27 86 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'} and $ctx->{'eol_type'} != $eolt)
2531 2 25 unless $self->__error_eol($ctx)
2538 1341 21 if (defined $esc and $c eq $esc)
2540 51 1290 if (defined $c2 and $c2 eq 0)
2546 1081 209 if (defined $c2 and defined $quot and $c2 eq $quot)
2549 1 1080 if ($ctx->{'utf8'})
2555 4 1 if ($ctx->{'allow_loose_escapes'} and defined $c2 and $c2 ne "\r")
2563 169 57 if (defined $c2 and $c2 eq "\r")
2564 0 169 if ($ctx->{'eol_is_cr'})
2572 137 32 if (defined $c3 and $c3 eq "\n")
2575 21 64 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'} and $ctx->{'eol_type'} != 3)
2576 0 21 unless $self->__error_eol($ctx)
2583 19 13 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2584 8 11 if ($c3 eq "\r")
2587 2 4 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'})
2588 2 0 unless ($ctx->{'eol_type'} == 2)
2589 0 2 unless $self->__error_eol($ctx)
2597 6 0 if ($ctx->{'flag'} & 1)
2603 11 0 unless ($c3 =~ /[^\x09\x20-\x7E]/)
2607 2 9 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'}) { }
2608 2 0 unless ($ctx->{'eol_type'} == 2)
2609 0 2 unless $self->__error_eol($ctx)
2622 12 1 $quoesc ? :
2626 10 47 if ($ctx->{'allow_loose_quotes'} and not $quoesc)
2635 39 8 if ($quoesc)
2644 16 52 if ($ctx->{'allow_loose_quotes'}) { }
2654 34 4621 if ($waitingForField) { }
4612 9 elsif ($ctx->{'flag'} & 1) { }
9 0 elsif ($v_ref) { }
2656 4 30 if ($ctx->{'allow_unquoted_escape'})
2663 1 3 unless (defined $c2)
2668 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'}) { }
2677 0 2 if ($ctx->{'utf8'})
2689 3 4609 unless (defined $c2)
2694 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'}) { }
2703 0 4581 if ($ctx->{'utf8'})
2715 4 5 unless (defined $c2)
2728 775 2514 ($c eq "\n" || $c eq "\r") && $c0 eq "\r" ? :
2731 2504 785 unless ($ctx->{'flag'} & CSV_FLAGS_IS_QUOTED())
2732 39 734 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'} and $ctx->{'eol_type'} != $eolt)
2733 5 34 unless $self->__error_eol($ctx)
2737 89 68 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2740 3 86 if ($ser == 3)
2741 3 83 if ($ser == 4)
2742 2 81 if ($ser == 5)
2744 71 10 if ($ser <= 2)
2747 8 63 if (not defined $c or $ser == 2)
2750 2 6 if ($ser == 2)
2755 10 63 if ($ser == 6)
2757 0 10 unless ($cb and ref $cb eq "CODE")
2763 2 8 unless (ref $rv eq "ARRAY")
2767 0 8 if ($n <= 0)
2770 0 8 if ($ctx->{'is_bound'} and $ctx->{'is_bound'} < $n)
2782 263 2932 if ($waitingForField)
2785 16 247 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
2790 262 1 unless ($ctx->{'is_bound'})
2793 14 249 if ($ctx->{'keep_meta_info'} and $fflags)
2798 785 2147 if ($ctx->{'flag'} & 1) { }
11 2136 elsif ($ctx->{'verbatim'}) { }
2802 29 756 unless ($ctx->{'binary'})
2812 1 10 unless ($ctx->{'binary'})
2816 8 2 unless $ctx->{'eol'} eq $c and $ctx->{'useIO'}
2821 4 28 if (not $ctx->{'recno'} and $ctx->{'fld_idx'} == 1 and $ctx->{'useIO'} and $hit =~ /^sep=(.{1,16})$/i)
2825 4 0 if ($len <= 16)
2826 3 1 $len == 1 ? :
2839 164 1091 if ($waitingForField)
2840 48 116 if ($ctx->{'eol_is_cr'})
2848 5 111 unless (defined $c2)
2852 0 5 unless $seenSomething
2855 90 21 if ($c2 eq "\n")
2858 0 19 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'} and $ctx->{'eol_type'} != 3)
2859 0 0 unless $self->__error_eol($ctx)
2866 16 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2867 0 16 if ($c2 eq "\n")
2870 0 0 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'}) { }
2871 0 0 unless ($ctx->{'eol_type'} == 2)
2872 0 0 unless $self->__error_eol($ctx)
2881 13 3 unless ($c2 =~ /[^\x09\x20-\x7E]/)
2885 4 9 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'}) { }
2886 4 0 unless ($ctx->{'eol_type'} == 2)
2887 0 4 unless $self->__error_eol($ctx)
2894 6 5 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
2897 0 6 if ($ser == 3)
2898 0 6 if ($ser == 4)
2899 0 6 if ($ser == 5)
2901 6 0 if ($ser <= 2)
2904 0 6 unless (defined $c)
2912 0 6 if ($ser == 6)
2914 0 0 unless ($cb and ref $cb eq "CODE")
2920 0 0 unless (ref $rv eq "ARRAY")
2924 0 0 if ($n <= 0)
2927 0 0 if ($ctx->{'is_bound'} and $ctx->{'is_bound'} < $n)
2951 614 477 if ($ctx->{'flag'} & 1) { }
2955 70 544 unless ($ctx->{'binary'})
2962 192 285 if ($ctx->{'eol_is_cr'})
2969 251 34 if (defined $c2 and $c2 eq "\n")
2972 10 152 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'} and $ctx->{'eol_type'} != 3)
2973 0 10 unless $self->__error_eol($ctx)
2979 29 5 if ($ctx->{'useIO'} and not $ctx->{'eol_len'})
2980 23 6 if (not $c2 =~ /[^\x09\x20-\x7E]/ or $c2 eq "\r")
2988 4 19 if ($ctx->{'strict_eol'} and $ctx->{'eol_type'}) { }
2989 4 0 unless ($ctx->{'eol_type'} == 2)
2990 0 4 unless $self->__error_eol($ctx)
2997 0 0 if ($fnum == 1 and $ctx->{'flag'} == 0 and !$v_ref || $$v_ref eq '' and $ctx->{'skip_empty_rows'})
3000 0 0 if ($ser == 3)
3001 0 0 if ($ser == 4)
3002 0 0 if ($ser == 5)
3004 0 0 if ($ser <= 2)
3007 0 0 unless (defined $c)
3014 0 0 if ($ser == 6)
3016 0 0 unless ($cb and ref $cb eq "CODE")
3022 0 0 unless (ref $rv eq "ARRAY")
3026 0 0 if ($n <= 0)
3029 0 0 if ($ctx->{'is_bound'} and $ctx->{'is_bound'} < $n)
3052 0 32318 if ($ctx->{'eolx'} and $c eq $eol)
3057 654 31664 if ($waitingForField)
3058 6 205 if (not $spl and $ctx->{'comment_str'} and $ctx->{'tmp'} =~ /\A$ctx->{'comment_str'}/)
3060 0 6 $ctx->{'strict_n'} ? :
3062 0 6 unless ($ctx->{'useIO'})
3067 241 407 if ($ctx->{'allow_whitespace'} and $self->__is_whitespace($ctx, $c))
3070 1 350 unless defined $c
3077 29475 2189 if ($ctx->{'flag'} & 1) { }
3078 3297 26178 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
3080 5 10 unless ($ctx->{'binary'} or $ctx->{'utf8'})
3087 450 1739 if (not defined $c or $c =~ /[^\x09\x20-\x7E]/)
3088 3 447 if $ctx->{'useIO'} and not defined $c
3090 9 0 unless ($ctx->{'binary'} or $ctx->{'utf8'})
3098 3 9248 if $ctx->{'useIO'} and $ctx->{'verbatim'} and $ctx->{'used'} == $ctx->{'size'}
3102 417 55 if ($waitingForField)
3103 25 392 unless ($ctx->{'useIO'})
3104 1 24 if ($ctx->{'has_ahead'} and $ctx->{'has_ahead'} == 214)
3109 33 383 if ($seenSomething)
3111 32 1 unless ($v_ref)
3112 0 32 if ($ctx->{'is_bound'}) { }
3119 0 32 unless $v_ref
3123 9 24 if ($ctx->{'blank_is_undef'} or $ctx->{'empty_is_undef'}) { }
3128 33 0 unless ($ctx->{'is_bound'})
3131 3 30 if ($ctx->{'keep_meta_info'} and $fflags)
3140 14 41 if ($ctx->{'flag'} & 1)
3145 41 0 if ($v_ref) { }
0 0 elsif ($ctx->{'flag'} == 0 and $fnum == 1 and $ctx->{'skip_empty_rows'} == 1) { }
3155 2183 4805 if defined $ctx->{'tmp'} and $ctx->{'used'} <= 0
3156 0 4805 if $ctx->{'used'} < $ctx->{'size'}
3157 1368 3437 unless $ctx->{'useIO'}
3159 2852 585 if (defined $res) { }
147 438 elsif (delete $ctx->{'has_leftover'}) { }
3160 4 2848 if ($ctx->{'has_ahead'}) { }
3162 2 2 if $ctx->{'eol_len'}
3168 2852 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
3170 70 2782 if utf8::is_utf8($ctx->{'tmp'})
3178 147 0 if ($ctx->{'size'} = length $ctx->{'tmp'})
3180 0 147 if utf8::is_utf8($ctx->{'tmp'})
3185 374 64 unless defined $ctx->{'tmp'}
3203 3 163 if ($i >= $ctx->{'is_bound'})
3207 163 0 if (ref $ctx->{'bound'} eq "ARRAY")
3209 163 0 if (ref $ref)
3210 14 149 if ($keep)
3213 148 1 unless (&Scalar::Util::readonly($$ref))
3225 0 17891 unless defined $ctx->{'used'}
3226 1395 16496 if ($ctx->{'used'} >= $ctx->{'size'})
3227 52 1343 if ($self->__get_from_src($ctx, $src))
3233 16496 0 if ($ctx->{'tmp'} =~ /\G($ctx->{'_re'}|.)/gs) { }
3235 1222 15274 if ($c =~ /[^\x09\012\015\x20-\x7e]/)
3241 0 0 if ($self->__get_from_src($ctx, $src))
3264 370 0 if $ctx->{'tmp'}
3271 61 48 unless ($ctx->{'strict_eol'} & 64)
3274 7 102 if ($ctx->{'strict_eol'} & 14)
3275 7 0 unless ($ctx->{'is_bound'})
3284 535 4559 unless defined $c
3295 206 21983 if $ctx->{'utf8'}
3296 27 107 if ($ctx->{'formula'} and defined $$v_ref and substr($$v_ref, 0, 1) eq "=")
3298 22 3 defined $value ? :
3301 12 22150 if (!defined($$v_ref) || $$v_ref eq '' and $ctx->{'empty_is_undef'} || !($flag & 1) && $ctx->{'blank_is_undef'}) { }
3307 1747 20403 if ($ctx->{'allow_whitespace'} and not $flag & 1)
3310 2182 1571 if ($flag & 2 and $ctx->{'decode_utf8'} and $ctx->{'utf8'} || _is_valid_utf8($$v_ref))
3314 22016 146 unless ($ctx->{'is_bound'})
3317 88 22074 if ($ctx->{'keep_meta_info'} and $fflags)
3327 1781 175 $res ? :
3339 12 346 if ($offset < 0)
3348 20 776 if ($offset > 0)
3353 12 764 if ($n++ >= $tail and $tail)
3357 138 638 if (($ctx->{'has_hooks'} || 0) & 2)
3358 63 75 unless ($self->_hook("after_parse", \@row))
3366 32 64 if defined $len and $n >= $len and $offset >= 0
3369 8 344 if (defined $len and $n > $len)
3377 2120 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 ? :
3399 0 1 if (defined $pos)
3408 4 2 if ($self and (builtin::reftype($self) || '') eq 'HASH' || ref($self) =~ /^Text::CSV/)
3424 6 1814 if ($error == 0)
3430 370 1450 if ($line)
3433 384 1436 if ($error == 2012)
3436 387 1433 if ($ctx->{'auto_diag'})
3445 1450 2082 if (ref $self) { }
3452 1032 2500 if (defined $errstr)
3473 4707 0 ref $left ? :