|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
535
 | 
 4  | 
 139  | 
 if (ref $file eq 'HASH') { }  | 
 
| 
 | 
 129  | 
 10  | 
 elsif (ref $_[0] eq 'HASH') { }  | 
 
| 
 | 
 10  | 
 0  | 
 elsif (not ref $_[0]) { }  | 
 
| 
541
 | 
 9  | 
 1  | 
 if ($#_ % 2 == 1) { }  | 
 
| 
553
 | 
 0  | 
 138  | 
 if (ref $file eq 'GLOB') { }  | 
 
| 
 | 
 132  | 
 6  | 
 elsif (ref $file eq 'SCALAR') { }  | 
 
| 
 | 
 2  | 
 4  | 
 elsif ($file) { }  | 
 
| 
559
 | 
 1  | 
 1  | 
 if (not ref $file) { }  | 
 
| 
560
 | 
 1  | 
 0  | 
 if (-r $file) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($self->{'options'}{'strict'} & STRICT_READ()) { }  | 
 
| 
573
 | 
 133  | 
 4  | 
 if ($file) { }  | 
 
| 
574
 | 
 0  | 
 129  | 
 unless ($self->read_headers)  | 
 
| 
575
 | 
 0  | 
 0  | 
 unless ($self->{'options'}{'strict'} & STRICT_READ())  | 
 
| 
610
 | 
 269  | 
 143  | 
 if (ref $_[0] eq 'HASH') { }  | 
 
| 
 | 
 142  | 
 1  | 
 elsif (ref $_[0] eq 'ARRAY') { }  | 
 
| 
 | 
 1  | 
 0  | 
 elsif (not ref $_[0]) { }  | 
 
| 
617
 | 
 11  | 
 2588  | 
 if ($_ =~ /^\s*!/) { }  | 
 
| 
 | 
 2  | 
 2586  | 
 elsif ($strict and not $_ =~ m[^/]) { }  | 
 
| 
630
 | 
 0  | 
 1  | 
 if ($_ =~ /^\s*!/) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($strict and not $_ =~ m[^/]) { }  | 
 
| 
684
 | 
 21  | 
 4  | 
 if (not @_) { }  | 
 
| 
 | 
 1  | 
 3  | 
 elsif (ref $_[0] eq 'HASH') { }  | 
 
| 
 | 
 1  | 
 2  | 
 elsif (ref $_[0] eq 'ARRAY') { }  | 
 
| 
693
 | 
 1  | 
 0  | 
 if (wantarray) { }  | 
 
| 
701
 | 
 4  | 
 0  | 
 if (not ref $_) { }  | 
 
| 
703
 | 
 4  | 
 0  | 
 defined $value ? :  | 
 
| 
708
 | 
 1  | 
 1  | 
 if (wantarray) { }  | 
 
| 
 | 
 0  | 
 1  | 
 elsif ($#ret == 0) { }  | 
 
| 
766
 | 
 83  | 
 52  | 
 if (defined $index) { }  | 
 
| 
767
 | 
 12  | 
 71  | 
 if ($index < 0)  | 
 
| 
771
 | 
 65  | 
 6  | 
 if ($self->{'options'}{'cache'}) { }  | 
 
| 
772
 | 
 41  | 
 24  | 
 if ($index > $self->{'max_dataidx'})  | 
 
| 
775
 | 
 4  | 
 71  | 
 unless ($self->next)  | 
 
| 
783
 | 
 0  | 
 61  | 
 if (wantarray) { }  | 
 
| 
789
 | 
 3  | 
 3  | 
 if ($index <= $self->{'dataidx'})  | 
 
| 
794
 | 
 0  | 
 7  | 
 unless ($self->next)  | 
 
| 
801
 | 
 45  | 
 7  | 
 if ($self->{'options'}{'cache'}) { }  | 
 
| 
805
 | 
 7  | 
 38  | 
 if (wantarray) { }  | 
 
| 
816
 | 
 6  | 
 1  | 
 if (wantarray) { }  | 
 
| 
852
 | 
 0  | 
 431  | 
 if (@_)  | 
 
| 
856
 | 
 73  | 
 358  | 
 if ($self->{'options'}{'cache'} and $self->{'dataidx'} < $self->{'max_dataidx'}) { }  | 
 
| 
 | 
 346  | 
 12  | 
 elsif ($self->{'handle'}) { }  | 
 
| 
859
 | 
 0  | 
 73  | 
 if (wantarray) { }  | 
 
| 
871
 | 
 268  | 
 0  | 
 if ($line)  | 
 
| 
874
 | 
 206  | 
 62  | 
 if ($self->{'options'}{'cache'})  | 
 
| 
878
 | 
 240  | 
 28  | 
 if ($self->{'dataidx'} > $self->{'max_dataidx'})  | 
 
| 
881
 | 
 0  | 
 268  | 
 if (wantarray) { }  | 
 
| 
904
 | 
 31  | 
 30  | 
 if ($self->{'dataidx'} != -1)  | 
 
| 
905
 | 
 9  | 
 22  | 
 unless ($self->{'options'}{'cache'})  | 
 
| 
942
 | 
 1  | 
 11  | 
 if (not $self->{'options'}{'cache'}) { }  | 
 
| 
 | 
 1  | 
 10  | 
 elsif ($self->{'dataidx'} == -1) { }  | 
 
| 
948
 | 
 2  | 
 8  | 
 unless (defined $new_row)  | 
 
| 
974
 | 
 0  | 
 3  | 
 unless ($self->{'options'}{'cache'})  | 
 
| 
977
 | 
 1  | 
 2  | 
 if ($index < 0)  | 
 
| 
981
 | 
 0  | 
 2  | 
 unless (defined $new_row)  | 
 
| 
985
 | 
 2  | 
 0  | 
 if ($index > $self->{'max_dataidx'})  | 
 
| 
990
 | 
 1  | 
 1  | 
 if ($index > $self->{'max_dataidx'})  | 
 
| 
1032
 | 
 0  | 
 16  | 
 unless ($self->{'options'}{'cache'})  | 
 
| 
1035
 | 
 1  | 
 15  | 
 if ($index < INSERT_END())  | 
 
| 
1039
 | 
 0  | 
 15  | 
 unless (defined $new_row)  | 
 
| 
1043
 | 
 10  | 
 5  | 
 if ($index == INSERT_END()) { }  | 
 
| 
 | 
 2  | 
 3  | 
 elsif ($index > $self->{'max_dataidx'}) { }  | 
 
| 
1052
 | 
 0  | 
 2  | 
 if ($index == $self->{'max_dataidx'} + 1) { }  | 
 
| 
 | 
 1  | 
 1  | 
 elsif ($index > $self->{'max_dataidx'}) { }  | 
 
| 
1059
 | 
 3  | 
 11  | 
 if ($index <= $self->{'dataidx'} and $index != INSERT_END())  | 
 
| 
1065
 | 
 2  | 
 12  | 
 if ($index == INSERT_BEGINNING()) { }  | 
 
| 
 | 
 10  | 
 2  | 
 elsif ($index == INSERT_END()) { }  | 
 
| 
1106
 | 
 1  | 
 5  | 
 if (not $self->{'options'}{'cache'}) { }  | 
 
| 
 | 
 0  | 
 8  | 
 elsif (not defined $index and $self->{'dataidx'} < 0) { }  | 
 
| 
1112
 | 
 2  | 
 3  | 
 unless (defined $index)  | 
 
| 
1116
 | 
 0  | 
 5  | 
 if ($index < 0) { }  | 
 
| 
 | 
 2  | 
 3  | 
 elsif ($index > $self->{'max_dataidx'}) { }  | 
 
| 
1123
 | 
 1  | 
 1  | 
 if ($index > $self->{'max_dataidx'})  | 
 
| 
1128
 | 
 3  | 
 1  | 
 if ($index <= $self->{'dataidx'})  | 
 
| 
1181
 | 
 1  | 
 6  | 
 if (ref $function ne 'CODE')  | 
 
| 
1192
 | 
 12  | 
 7  | 
 if (defined $ret and defined wantarray)  | 
 
| 
1195
 | 
 2  | 
 17  | 
 unless (defined $row)  | 
 
| 
1196
 | 
 1  | 
 1  | 
 if ($self->{'dataidx'} <= $currentidx)  | 
 
| 
1231
 | 
 5  | 
 8  | 
 if (ref $_[$#_] eq 'HASH')  | 
 
| 
1234
 | 
 0  | 
 13  | 
 unless (@_)  | 
 
| 
1238
 | 
 3  | 
 10  | 
 $self->{'options'}{'missing_data_to_undef'} ? :  | 
 
| 
1246
 | 
 4  | 
 17  | 
 if (&firstidx(sub {
	$_ eq $field;
}
, @{$$self{'actual_fields'};}) < 0)  | 
 
| 
1247
 | 
 3  | 
 1  | 
 if (not $self->{'options'}{'fill_ancillary_data'} or &firstidx(sub {
	$_ eq $field;
}
, keys %{$$self{'ancillary'};}) < 0)  | 
 
| 
1256
 | 
 20  | 
 20  | 
 if ($options{'delete_missing'})  | 
 
| 
1259
 | 
 4  | 
 32  | 
 unless (defined $row->{$field} and !defined($missing) || $row->{$field} != $missing)  | 
 
| 
1264
 | 
 4  | 
 16  | 
 unless ($has_all)  | 
 
| 
1276
 | 
 3  | 
 7  | 
 if ($#_ == 0) { }  | 
 
| 
 | 
 4  | 
 3  | 
 elsif (wantarray) { }  | 
 
| 
1277
 | 
 1  | 
 2  | 
 if (wantarray) { }  | 
 
| 
1299
 | 
 1  | 
 7  | 
 unless (@_)  | 
 
| 
1307
 | 
 1  | 
 8  | 
 if ($field_idx < 0) { }  | 
 
| 
1331
 | 
 0  | 
 25  | 
 if (not $self->{'options'}{'cache'}) { }  | 
 
| 
 | 
 1  | 
 24  | 
 elsif (not $field) { }  | 
 
| 
1339
 | 
 3  | 
 21  | 
 if ($field_idx >= 0)  | 
 
| 
1342
 | 
 15  | 
 6  | 
 unless (defined $position)  | 
 
| 
1348
 | 
 17  | 
 4  | 
 if ($position == INSERT_END()) { }  | 
 
| 
 | 
 2  | 
 2  | 
 elsif ($position == INSERT_BEGINNING()) { }  | 
 
| 
1381
 | 
 0  | 
 10  | 
 if ($#_ < 0)  | 
 
| 
1389
 | 
 13  | 
 0  | 
 if (defined $find)  | 
 
| 
1390
 | 
 7  | 
 6  | 
 if (not ref $find) { }  | 
 
| 
 | 
 6  | 
 0  | 
 elsif (ref $find eq 'Regexp') { }  | 
 
| 
1399
 | 
 23  | 
 69  | 
 if ($field =~ /$regex/)  | 
 
| 
1407
 | 
 7  | 
 3  | 
 if ($#_ == 0) { }  | 
 
| 
1410
 | 
 2  | 
 1  | 
 if (wantarray) { }  | 
 
| 
1430
 | 
 1  | 
 2  | 
 if ($c =~ /^!/) { }  | 
 
| 
1448
 | 
 2  | 
 4  | 
 if (@_) { }  | 
 
| 
1453
 | 
 0  | 
 6  | 
 if (wantarray) { }  | 
 
| 
1473
 | 
 1  | 
 1  | 
 if ($c =~ /^!/) { }  | 
 
| 
1501
 | 
 1  | 
 14  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
1504
 | 
 3  | 
 12  | 
 if ($strict_write)  | 
 
| 
1507
 | 
 0  | 
 65  | 
 if (&firstidx(sub {
	$_ eq $header_no_slash;
}
, @ALL_HEADERS) < 0 and &firstidx(sub {
	$_ eq $header_no_slash;
}
, @HIDDEN_HEADERS) < 0)  | 
 
| 
1514
 | 
 20  | 
 46  | 
 unless (exists $self->{'headers'}{$header})  | 
 
| 
1521
 | 
 14  | 
 1  | 
 if (not $error) { }  | 
 
| 
1525
 | 
 0  | 
 14  | 
 if (not $write_to_h and exists $self->{'default_write_to'})  | 
 
| 
1529
 | 
 0  | 
 14  | 
 if (defined $write_to_h)  | 
 
| 
1530
 | 
 0  | 
 0  | 
 if (ref $write_to_h eq 'GLOB') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif (not ref $write_to_h) { }  | 
 
| 
1535
 | 
 0  | 
 0  | 
 unless open $write_to_h, '>', $write_to  | 
 
| 
1545
 | 
 2  | 
 12  | 
 if ($actual_delim eq 'comma') { }  | 
 
| 
 | 
 12  | 
 0  | 
 elsif ($actual_delim eq 'space') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($actual_delim eq 'tab') { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($actual_delim eq 'semicolon') { }  | 
 
| 
1558
 | 
 14  | 
 0  | 
 exists $self->{'missing'} ? :  | 
 
| 
1559
 | 
 14  | 
 0  | 
 exists $self->{'below_detection_limit'} ? :  | 
 
| 
1560
 | 
 14  | 
 0  | 
 exists $self->{'above_detection_limit'} ? :  | 
 
| 
1562
 | 
 1  | 
 13  | 
 if ($self->{'options'}{'preserve_header'}) { }  | 
 
| 
1565
 | 
 3  | 
 10  | 
 unless (exists $self->{'headers'}{"${slash}begin_header"})  | 
 
| 
1570
 | 
 1  | 
 12  | 
 if ($add_missing_headers and $add_missing_headers eq '1')  | 
 
| 
1573
 | 
 1  | 
 12  | 
 unless ($self->{'options'}{'preserve_case'})  | 
 
| 
1580
 | 
 12  | 
 1  | 
 if ($missing eq $adl or $self->{'options'}{'missing_data_to_undef'} and not $self->{'options'}{'preserve_detection_limits'})  | 
 
| 
1583
 | 
 12  | 
 1  | 
 if ($missing eq $bdl or $self->{'options'}{'missing_data_to_undef'} and not $self->{'options'}{'preserve_detection_limits'})  | 
 
| 
1587
 | 
 6  | 
 7  | 
 unless (grep(($_ ne 'unitless'), @{$$self{'actual_units'};}))  | 
 
| 
1592
 | 
 13  | 
 399  | 
 if ($header eq 'missing') { }  | 
 
| 
 | 
 13  | 
 386  | 
 elsif ($header eq 'fields') { }  | 
 
| 
 | 
 7  | 
 379  | 
 elsif ($header eq 'units') { }  | 
 
| 
 | 
 111  | 
 268  | 
 elsif (exists $self->{'headers'}{"$slash$header"}) { }  | 
 
| 
 | 
 0  | 
 268  | 
 elsif ($add_missing_headers) { }  | 
 
| 
1595
 | 
 0  | 
 153  | 
 if (&firstidx(sub {
	$_ eq $header_no_slash;
}
, @ALL_HEADERS) < 0)  | 
 
| 
1603
 | 
 1  | 
 12  | 
 if (not @{$self->{'comments'};} and $add_missing_headers)  | 
 
| 
1606
 | 
 3  | 
 10  | 
 if (not exists $self->{'headers'}{"$slash$header"}) { }  | 
 
| 
1616
 | 
 20  | 
 91  | 
 if ($header =~ /_header/) { }  | 
 
| 
 | 
 65  | 
 26  | 
 elsif (length $self->{'headers'}{"$slash$header"}) { }  | 
 
| 
 | 
 26  | 
 0  | 
 elsif ($add_missing_headers) { }  | 
 
| 
1620
 | 
 8  | 
 57  | 
 if ($header =~ /_latitude|_longitude/) { }  | 
 
| 
 | 
 4  | 
 53  | 
 elsif ($header =~ /_time/) { }  | 
 
| 
1629
 | 
 1  | 
 25  | 
 if $OMIT_EMPTY_HEADERS{$header}  | 
 
| 
1632
 | 
 4  | 
 21  | 
 if ($header =~ /_latitude|_longitude/) { }  | 
 
| 
 | 
 2  | 
 19  | 
 elsif ($header =~ /_time/) { }  | 
 
| 
1641
 | 
 0  | 
 0  | 
 if $OMIT_EMPTY_HEADERS{$header}  | 
 
| 
1644
 | 
 0  | 
 0  | 
 if ($header =~ /_latitude|_longitude/) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($header =~ /_time/) { }  | 
 
| 
1654
 | 
 3  | 
 10  | 
 unless (exists $self->{'headers'}{"${slash}end_header"})  | 
 
| 
1664
 | 
 102  | 
 16  | 
 defined $row->{$field} ? :  | 
 
| 
1670
 | 
 0  | 
 14  | 
 if ($close_write_to)  | 
 
| 
1689
 | 
 133  | 
 10  | 
 if ($self->{'handle'}) { }  | 
 
| 
1722
 | 
 0  | 
 33  | 
 unless ($self->{'delim'} or $self->guess_delim($line))  | 
 
| 
1729
 | 
 0  | 
 268  | 
 if ($num_expected != $num_got)  | 
 
| 
1737
 | 
 968  | 
 911  | 
 if ($self->{'options'}{'missing_data_to_undef'}) { }  | 
 
| 
1738
 | 
 0  | 
 968  | 
 if (not length $v) { }  | 
 
| 
 | 
 68  | 
 900  | 
 elsif ($self->{'missing_is_number'} and &looks_like_number($v) and $v == $self->{'missing'}) { }  | 
 
| 
 | 
 1  | 
 899  | 
 elsif (not $self->{'options'}{'preserve_detection_limits'} and $self->{'adl_is_number'} and &looks_like_number($v) and $v == $self->{'above_detection_limit'}) { }  | 
 
| 
 | 
 1  | 
 898  | 
 elsif (not $self->{'options'}{'preserve_detection_limits'} and $self->{'bdl_is_number'} and &looks_like_number($v) and $v == $self->{'below_detection_limit'}) { }  | 
 
| 
 | 
 10  | 
 888  | 
 elsif ($v eq $self->{'missing'} or not $self->{'options'}{'preserve_detection_limits'} and $v eq $self->{'below_detection_limit'} || $v eq $self->{'above_detection_limit'}) { }  | 
 
| 
1756
 | 
 0  | 
 268  | 
 if (wantarray) { }  | 
 
| 
1815
 | 
 0  | 
 138  | 
 unless (ref $self)  | 
 
| 
1820
 | 
 138  | 
 0  | 
 if ($name)  | 
 
| 
1823
 | 
 1  | 
 137  | 
 unless (defined $value)  | 
 
| 
1826
 | 
 133  | 
 4  | 
 if (ref $value eq 'ARRAY' and wantarray) { }  | 
 
| 
 | 
 0  | 
 8  | 
 elsif (ref $value eq 'HASH' and wantarray) { }  | 
 
| 
1857
 | 
 2  | 
 1968  | 
 if (not exists $DEFAULT_OPTIONS{$k}) { }  | 
 
| 
 | 
 2  | 
 1966  | 
 elsif (&firstidx(sub {
	$_ eq ref $v;
}
, @{$OPTION_TYPES{$k};}) < 0) { }  | 
 
| 
1861
 | 
 1  | 
 1  | 
 $expected_ref ? :  | 
 
| 
1864
 | 
 1  | 
 137  | 
 if ($self->{'options'}{'add_empty_headers'})  | 
 
| 
1907
 | 
 1  | 
 3  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
1908
 | 
 1  | 
 3  | 
 if ($self->{'options'}{'add_empty_headers'})  | 
 
| 
1910
 | 
 34  | 
 0  | 
 unless (exists $self->{'headers'}{"$slash$_"})  | 
 
| 
1912
 | 
 1  | 
 33  | 
 if ($_ eq 'missing')  | 
 
| 
1920
 | 
 4  | 
 0  | 
 if ($self->{'options'}{'default_headers'})  | 
 
| 
1923
 | 
 4  | 
 0  | 
 if ($self->{'options'}{'headers'})  | 
 
| 
1926
 | 
 0  | 
 4  | 
 unless ($success)  | 
 
| 
1943
 | 
 0  | 
 133  | 
 if ($self->{'headers'})  | 
 
| 
1947
 | 
 7  | 
 126  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
1954
 | 
 133  | 
 0  | 
 if ($self->{'options'}{'default_headers'})  | 
 
| 
1967
 | 
 3294  | 
 0  | 
 if ($line)  | 
 
| 
1968
 | 
 116  | 
 3178  | 
 if ($line =~ m[^(/end_header)\@?$]i) { }  | 
 
| 
 | 
 2465  | 
 713  | 
 elsif ($line =~ m[^/]) { }  | 
 
| 
 | 
 696  | 
 17  | 
 elsif ($line =~ /^!/) { }  | 
 
| 
1976
 | 
 10  | 
 686  | 
 if ($self->{'options'}{'preserve_header'})  | 
 
| 
1981
 | 
 0  | 
 17  | 
 if ($strict & STRICT_READ())  | 
 
| 
1991
 | 
 5  | 
 128  | 
 if ($strict & STRICT_READ()) { }  | 
 
| 
1997
 | 
 1  | 
 132  | 
 if ($self->{'options'}{'preserve_header'})  | 
 
| 
2006
 | 
 133  | 
 0  | 
 if ($self->{'options'}{'headers'})  | 
 
| 
2012
 | 
 132  | 
 1  | 
 if ($self->{'options'}{'preserve_comments'})  | 
 
| 
2017
 | 
 1  | 
 132  | 
 if ($self->{'options'}{'delete_missing_headers'})  | 
 
| 
2019
 | 
 3  | 
 28  | 
 if ($k =~ m[/?(?:end|begin)_header$|^/?missing$])  | 
 
| 
2022
 | 
 7  | 
 21  | 
 if (not defined $v or $v =~ m(^n/?a(?:\[.*?\])?$)i or lc $v eq lc $missing)  | 
 
| 
2028
 | 
 5  | 
 128  | 
 if ($strict & STRICT_READ())  | 
 
| 
2030
 | 
 58  | 
 52  | 
 unless (exists $headers{"$slash$_"})  | 
 
| 
2036
 | 
 0  | 
 72  | 
 if ($slash)  | 
 
| 
2039
 | 
 0  | 
 72  | 
 if (&firstidx(sub {
	$_ eq $header;
}
, @ALL_HEADERS) < 0 and &firstidx(sub {
	$_ eq $header;
}
, @HIDDEN_HEADERS) < 0)  | 
 
| 
2044
 | 
 0  | 
 5  | 
 if ($headers{"${slash}begin_header"} or $headers{"${slash}end_header"})  | 
 
| 
2050
 | 
 1  | 
 132  | 
 unless (exists $headers{"$slash$_"})  | 
 
| 
2052
 | 
 1  | 
 0  | 
 if ($strict & STRICT_READ())  | 
 
| 
2061
 | 
 79  | 
 54  | 
 if ($headers{"${slash}units"}) { }  | 
 
| 
2075
 | 
 1  | 
 132  | 
 if (@{$self->{'fields'};} != @{$self->{'units'};})  | 
 
| 
2076
 | 
 1  | 
 0  | 
 if ($strict & STRICT_READ()) { }  | 
 
| 
2089
 | 
 4  | 
 129  | 
 unless ($success)  | 
 
| 
2090
 | 
 4  | 
 0  | 
 if ($strict & STRICT_READ()) { }  | 
 
| 
2104
 | 
 119  | 
 10  | 
 if ($self->{'options'}{'cache'})  | 
 
| 
2112
 | 
 18  | 
 111  | 
 if ($self->{'options'}{'fill_ancillary_data'})  | 
 
| 
2126
 | 
 83  | 
 80  | 
 if ($idx >= 0)  | 
 
| 
2130
 | 
 29  | 
 134  | 
 if (ref $value) { }  | 
 
| 
2150
 | 
 159  | 
 6  | 
 if ($idx >= 0)  | 
 
| 
2159
 | 
 0  | 
 163  | 
 if ($field ne $new_field)  | 
 
| 
2169
 | 
 1  | 
 127  | 
 if ($self->{'options'}{'optional_warnings'} and $headers{$data_use_header})  | 
 
| 
2201
 | 
 207  | 
 2388  | 
 if (not defined $v) { }  | 
 
| 
2211
 | 
 1  | 
 2594  | 
 if (length $v == 0 and not $k =~ /_header/)  | 
 
| 
2212
 | 
 0  | 
 1  | 
 if ($strict) { }  | 
 
| 
2220
 | 
 1313  | 
 1282  | 
 if (not $self->{'options'}{'preserve_case'} or $k =~ /fields|units/)  | 
 
| 
2224
 | 
 139  | 
 2456  | 
 if ($self->{'options'}{'keep_slashes'}) { }  | 
 
| 
2225
 | 
 2  | 
 137  | 
 if ($k =~ m[^[^/]])  | 
 
| 
2229
 | 
 0  | 
 6  | 
 if ($strict and &firstidx(sub {
	"/$_" eq $k;
}
, @ALL_HEADERS) < 0 and &firstidx(sub {
	"/$_" eq $k;
}
, @HIDDEN_HEADERS) < 0)  | 
 
| 
2234
 | 
 2454  | 
 2  | 
 if ($k =~ m[^/])  | 
 
| 
2238
 | 
 0  | 
 80  | 
 if ($strict and &firstidx(sub {
	$_ eq $k;
}
, @ALL_HEADERS) < 0 and &firstidx(sub {
	$_ eq $k;
}
, @HIDDEN_HEADERS) < 0)  | 
 
| 
2244
 | 
 308  | 
 2287  | 
 if ($k =~ /_latitude|_longitude/) { }  | 
 
| 
 | 
 159  | 
 2128  | 
 elsif ($k =~ /_time/) { }  | 
 
| 
 | 
 93  | 
 2035  | 
 elsif ($k =~ m[^/?delimiter$]) { }  | 
 
| 
 | 
 114  | 
 1921  | 
 elsif ($k =~ m[^/?missing$]) { }  | 
 
| 
 | 
 7  | 
 1914  | 
 elsif ($k =~ m[^/?above_detection_limit]) { }  | 
 
| 
 | 
 7  | 
 1907  | 
 elsif ($k =~ m[^/?below_detection_limit]) { }  | 
 
| 
2249
 | 
 1  | 
 92  | 
 unless ($self->set_delim($strict, $v))  | 
 
| 
2250
 | 
 0  | 
 1  | 
 if ($strict)  | 
 
| 
2255
 | 
 114  | 
 0  | 
 length $v ? :  | 
 
| 
2258
 | 
 7  | 
 0  | 
 length $v ? :  | 
 
| 
2261
 | 
 7  | 
 0  | 
 length $v ? :  | 
 
| 
2282
 | 
 0  | 
 93  | 
 if ($delim eq 'comma') { }  | 
 
| 
 | 
 0  | 
 93  | 
 elsif ($delim eq 'semicolon') { }  | 
 
| 
 | 
 91  | 
 2  | 
 elsif ($delim eq 'space') { }  | 
 
| 
 | 
 0  | 
 2  | 
 elsif ($delim eq 'tab') { }  | 
 
| 
 | 
 1  | 
 1  | 
 elsif ($strict) { }  | 
 
| 
2293
 | 
 0  | 
 1  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
2298
 | 
 92  | 
 1  | 
 $delim ? :  | 
 
| 
2311
 | 
 4  | 
 24  | 
 if ($self->{'options'}{'cache'} and $self->{'max_dataidx'} >= 0)  | 
 
| 
2317
 | 
 2  | 
 26  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
2339
 | 
 21  | 
 1905  | 
 if (&firstidx(sub {
	$_ eq $field;
}
, @{$$self{'actual_fields'};}) < 0)  | 
 
| 
2340
 | 
 21  | 
 0  | 
 unless ($self->{'options'}{'fill_ancillary_data'} and &firstidx(sub {
	$_ eq $field;
}
, keys %{$$self{'ancillary'};}) >= 0)  | 
 
| 
2346
 | 
 142  | 
 137  | 
 $self->{'options'}{'missing_data_to_undef'} ? :  | 
 
| 
2350
 | 
 279  | 
 1953  | 
 if ($case_var eq 'second') { }  | 
 
| 
 | 
 50  | 
 1903  | 
 elsif (defined $v and length $v and !defined($missing) || $v != $missing) { }  | 
 
| 
2351
 | 
 11  | 
 0  | 
 if (defined $v and length $v and !defined($missing) || $v != $missing)  | 
 
| 
2352
 | 
 1  | 
 10  | 
 if ($v =~ /\D/) { }  | 
 
| 
2363
 | 
 21  | 
 258  | 
 if (defined $self->{'ancillary'})  | 
 
| 
2366
 | 
 193  | 
 80  | 
 if (defined $self->{'ancillary'}{$variable})  | 
 
| 
2368
 | 
 193  | 
 0  | 
 if (defined $value)  | 
 
| 
2376
 | 
 61  | 
 1921  | 
 unless (exists $hash->{$field})  | 
 
| 
2396
 | 
 2  | 
 35  | 
 if ($line =~ /,/) { }  | 
 
| 
 | 
 0  | 
 35  | 
 elsif ($line =~ /\t/) { }  | 
 
| 
 | 
 35  | 
 0  | 
 elsif ($line =~ /\s+/) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif ($line =~ /;/) { }  | 
 
| 
2416
 | 
 1  | 
 36  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
2443
 | 
 1  | 
 26  | 
 if ($#_ < 0)  | 
 
| 
2448
 | 
 14  | 
 12  | 
 if (ref $_[0] eq 'HASH') { }  | 
 
| 
 | 
 3  | 
 9  | 
 elsif (ref $_[0] eq 'ARRAY') { }  | 
 
| 
 | 
 9  | 
 0  | 
 elsif (not ref $_[0]) { }  | 
 
| 
2453
 | 
 7  | 
 2  | 
 if ($#_ == 0) { }  | 
 
| 
 | 
 1  | 
 1  | 
 elsif ($#_ % 2 == 1) { }  | 
 
| 
2454
 | 
 0  | 
 4  | 
 unless ($self->{'delim'} or $self->guess_delim($_[0]))  | 
 
| 
2469
 | 
 10  | 
 15  | 
 if ($arrayref)  | 
 
| 
2471
 | 
 8  | 
 2  | 
 if (scalar @{$self->{'actual_fields'};} == scalar @{$arrayref;}) { }  | 
 
| 
 | 
 2  | 
 0  | 
 elsif (scalar @{$self->{'fields'};} == scalar @{$arrayref;}) { }  | 
 
| 
2479
 | 
 0  | 
 0  | 
 if ($actual_fields == $fields) { }  | 
 
| 
2493
 | 
 0  | 
 25  | 
 if (wantarray) { }  | 
 
| 
2531
 | 
 130  | 
 348  | 
 if ($self->{'ancillary'}{$field})  | 
 
| 
2535
 | 
 83  | 
 265  | 
 if ($idx >= 0)  | 
 
| 
2540
 | 
 0  | 
 265  | 
 $self->{'options'}{'keep_slashes'} ? :  | 
 
| 
2541
 | 
 27  | 
 238  | 
 unless $ANCILLARY{$field}  | 
 
| 
2542
 | 
 308  | 
 153  | 
 if (ref $attempt eq 'HASH') { }  | 
 
| 
 | 
 104  | 
 49  | 
 elsif (ref $attempt eq 'ARRAY') { }  | 
 
| 
 | 
 49  | 
 0  | 
 elsif (not ref $attempt) { }  | 
 
| 
2545
 | 
 130  | 
 178  | 
 if ($where =~ /^\$/) { }  | 
 
| 
 | 
 20  | 
 158  | 
 elsif (defined $self->{'headers'}{"$slash$where"} and $self->{'headers'}{"$slash$where"} =~ /$regex/ and lc $1 ne 'na') { }  | 
 
| 
2546
 | 
 15  | 
 115  | 
 if (&firstidx(sub {
	"\$$_" eq $where;
}
, $self->fields) >= 0)  | 
 
| 
2559
 | 
 50  | 
 54  | 
 if (ref $attempt[0] eq 'Regexp')  | 
 
| 
2569
 | 
 55  | 
 90  | 
 if ($success) { }  | 
 
| 
2570
 | 
 0  | 
 55  | 
 if (ref $self->{'ancillary'}{$variable}) { }  | 
 
| 
2583
 | 
 14  | 
 90  | 
 if ($success)  | 
 
| 
2584
 | 
 8  | 
 6  | 
 if ($regex)  | 
 
| 
2596
 | 
 81  | 
 18  | 
 if ($success) { }  | 
 
| 
2597
 | 
 6  | 
 75  | 
 if (ref $self->{'ancillary'}{$variable}) { }  | 
 
| 
2608
 | 
 31  | 
 18  | 
 if ($success)  | 
 
| 
2633
 | 
 47  | 
 193  | 
 if (ref $expression) { }  | 
 
| 
2640
 | 
 131  | 
 104  | 
 if ($self->{'ancillary_tmp'}{$variable}) { }  | 
 
| 
 | 
 104  | 
 0  | 
 elsif (defined $row->{$variable} and length $row->{$variable} and !defined($missing) || $row->{$variable} != $missing) { }  | 
 
| 
 | 
 0  | 
 0  | 
 elsif (ref $self->{'ancillary'}{$variable}) { }  | 
 
| 
2647
 | 
 0  | 
 0  | 
 unless (defined $value)  | 
 
| 
2676
 | 
 41  | 
 6  | 
 if (ref $args[0] eq 'Regexp')  | 
 
| 
2681
 | 
 0  | 
 47  | 
 unless (defined $_)  | 
 
| 
2686
 | 
 41  | 
 6  | 
 if ($regex)  | 
 
| 
2687
 | 
 41  | 
 0  | 
 if ($value =~ /$regex/)  | 
 
| 
2733
 | 
 14  | 
 0  | 
 if ($yyyyjjj =~ /^(\d{4})(\d{3})$/)  |