| line | true | false | branch | 
 
| 34 | 1 | 12 | if ref $i and ref $i eq 'Spreadsheet::ParseExcel::Worksheet' | 
 
| 35 | 4 | 8 | if ref $i and ref $i eq 'GLOB' || ref($i)->can('read') | 
 
| 36 | 0 | 8 | unless open my $fh, '<', $i | 
 
| 47 | 1 | 12 | if (not $decoder_arg) { } | 
 
|  | 4 | 8 | elsif (not $decoder_ref) { } | 
 
|  | 8 | 0 | elsif ($decoder_ref eq 'HASH' or $decoder_ref eq 'ARRAY') { } | 
 
|  | 0 | 0 | elsif ($decoder_ref->can('iterator')) { } | 
 
| 55 | 0 | 8 | $decoder_ref eq 'ARRAY' ? : | 
 
| 59 | 0 | 8 | unless ($class) | 
 
| 61 | 0 | 0 | unless $input_class | 
 
| 72 | 13 | 0 | unless $class =~ /::/ | 
 
| 74 | 0 | 13 | unless &require_module($class) | 
 
| 76 | 4 | 9 | $self->input eq ($self->_file_handle || '') ? : | 
 
| 87 | 0 | 13 | unless defined $list and ref $list eq 'ARRAY' | 
 
| 90 | 5 | 29 | if (not ref $_) { } | 
 
|  | 29 | 0 | elsif (ref $_ eq 'HASH') { } | 
 
| 95 | 0 | 29 | if defined $args{'isa'} and not defined $args{'type'} | 
 
| 125 | 2 | 0 | unless $level eq 'warn' or $level eq 'error' | 
 
| 126 | 0 | 0 | if @args | 
 
| 131 | 10 | 1 | unless $level eq 'warn' or $level eq 'error' | 
 
| 132 | 1 | 0 | if @args | 
 
| 137 | 19 | 2 | @args ? : | 
 
|  | 21 | 97 | if $dest->can('is_' . $level)->($dest) | 
 
| 140 | 10 | 0 | ref($dest)->can('info') ? : | 
 
|  | 2 | 10 | ref $dest eq 'ARRAY' ? : | 
 
|  | 1 | 12 | !$dest ? : | 
 
| 149 | 1 | 0 | if ref $input and ref($input)->can('get_cell') | 
 
| 151 | 0 | 0 | if ref $input and ref($input)->can('worksheets') | 
 
| 156 | 0 | 0 | unless (defined $magic) | 
 
| 159 | 0 | 0 | if (seek $fh, 0, 1) { } | 
 
|  | 0 | 0 | elsif ($fh->can('ungets')) { } | 
 
| 162 | 0 | 0 | unless seek $fh, $fpos, 0 | 
 
| 178 | 0 | 0 | if $magic =~ /^PK(\x03\x04|\x05\x06|\x07\x08)/ | 
 
| 179 | 0 | 0 | if $magic =~ /^\xD0\xCF\x11\xE0/ | 
 
| 185 | 0 | 0 | unless (defined $filename) | 
 
| 187 | 0 | 0 | if defined $input and !ref($input) || ref($input) =~ /path|file/i | 
 
| 189 | 0 | 0 | if ($filename =~ /\.([^.]+)$/) | 
 
| 191 | 0 | 0 | if $suffix eq 'HTM' | 
 
| 197 | 0 | 0 | !defined($fpos) ? : | 
 
|  | 0 | 0 | unless length $magic | 
 
| 201 | 0 | 0 | if $magic =~ /^(\xEF\xBB\xBF|\xFF\xFE|\xFE\xFF)?<(!DOCTYPE )HTML/i | 
 
| 204 | 0 | 0 | if $magic =~ /^(\xEF\xBB\xBF|\xFF\xFE|\xFE\xFF)?["']?[\w ]+["']?,/ | 
 
| 205 | 0 | 0 | if $magic =~ /^(\xEF\xBB\xBF|\xFF\xFE|\xFE\xFF)?["']?[\w ]+["']?\t/ | 
 
| 209 | 0 | 0 | if $comma_count > $eol_count and $comma_count > $tab_count | 
 
| 210 | 0 | 0 | if $tab_count > $eol_count and $tab_count > $comma_count | 
 
| 213 | 0 | 0 | if $probably_csv and $probably_csv > $probably_tsv | 
 
| 214 | 0 | 0 | if $probably_tsv and $probably_tsv > $probably_csv | 
 
| 229 | 0 | 8 | if $self->_has_table_found | 
 
| 231 | 8 | 0 | if ($self->_find_table($self->decoder->iterator, \%loc)) | 
 
| 248 | 12 | 0 | if ($stash->{'col_map'}) { } | 
 
| 253 | 18 | 39 | unless $col_map->[$i] | 
 
| 254 | 10 | 29 | if ($col_map->[$i]->array) { } | 
 
| 269 | 0 | 0 | if $stash->{'croak_on_fail'} | 
 
| 280 | 0 | 13 | unless (defined $header_at) | 
 
| 281 | 0 | 0 | unless ($self->static_field_order) | 
 
| 292 | 13 | 0 | ref $header_at ? : | 
 
| 296 | 0 | 13 | if ($start > 1) | 
 
| 305 | 1 | 21 | unless ($vals) | 
 
| 309 | 5 | 16 | if ($row_accum > 1) { } | 
 
| 319 | 0 | 21 | $self->static_field_order ? : | 
 
| 324 | 12 | 9 | if $stash->{'col_map'} | 
 
| 325 | 0 | 9 | if $stash->{'fatal'} | 
 
| 336 | 0 | 0 | if $header->[$i] =~ $fields->[$i]->header_regex | 
 
| 354 | 2 | 3 | $b->required ? : | 
 
|  | 26 | 5 | $a->required ? : | 
 
| 364 | 30 | 12 | if (@found == 1) { } | 
 
|  | 1 | 11 | elsif (@found > 1) { } | 
 
|  | 9 | 2 | elsif ($f->required) { } | 
 
| 365 | 0 | 30 | if ($col_map{$found[0]}) | 
 
| 374 | 1 | 0 | if ($f->array) { } | 
 
| 392 | 0 | 12 | unless (keys %col_map) | 
 
| 398 | 2 | 10 | if (@$follows_fields) | 
 
| 402 | 5 | 12 | if ($col_map{$i}) { } | 
 
| 408 | 9 | 9 | unless grep $following{$_}, $f->follows_list | 
 
| 409 | 7 | 2 | if $val =~ $f->header_regex | 
 
| 411 | 7 | 5 | if (@match == 1) { } | 
 
|  | 0 | 5 | elsif (@match > 1) { } | 
 
| 412 | 0 | 7 | if ($found{$match[0]} and not $match[0]->array) | 
 
| 434 | 0 | 3 | if not $found{$_} | 
 
|  | 0 | 2 | if (my(@unfound) = grep({$_->required if not $found{$_};} @$follows_fields)) | 
 
| 437 | 0 | 0 | @unfound > 1 ? : | 
 
| 445 | 5 | 7 | if (@unclaimed) | 
 
| 448 | 0 | 5 | if ref $act eq 'CODE' | 
 
| 449 | 5 | 0 | if ($act eq 'use') { } | 
 
|  | 0 | 0 | elsif ($act eq 'next') { } | 
 
|  | 0 | 0 | elsif ($act eq 'die') { } | 
 
| 460 | 0 | 5 | if $stash->{'fatal'} | 
 
| 466 | 18 | 69 | if ref $_[0] | 
 
| 475 | 26 | 69 | $colmap->{$_} ? : | 
 
| 489 | 2 | 12 | unless ($data_iter) | 
 
| 506 | 0 | 14 | if ($self->record_class eq 'ARRAY') { } | 
 
| 510 | 0 | 0 | defined $src ? : | 
 
| 516 | 0 | 14 | unless 'HASH' eq $self->record_class | 
 
| 524 | 35 | 2 | if (not ref $row_slice[$_]) { } | 
 
| 526 | 35 | 0 | if $field->trim | 
 
| 528 | 4 | 31 | if $field->type | 
 
| 541 | 10 | 0 | if $field->trim | 
 
| 543 | 0 | 10 | if $field->type | 
 
| 551 | 13 | 35 | unless my $row = !$eof && &$data_iter(\@row_slice) | 
 
| 563 | 14 | 79 | if not defined $row->[$_] && length $row->[$_] | 
 
| 565 | 2 | 33 | if ($n_blank == @$row) { } | 
 
|  | 2 | 31 | elsif ($first_blank) { } | 
 
| 569 | 0 | 2 | unless ($self->_handle_blank_row($first_blank, $data_iter->position)) | 
 
| 576 | 18 | 15 | if (@type_check) | 
 
| 577 | 6 | 12 | if (my(@failed) = map(&$_($row), @type_check)) | 
 
| 578 | 3 | 2 | unless $self->_handle_validation_fail(\@failed, $row, $data_iter->position . ': ') | 
 
| 585 | 0 | 29 | unless @field_names | 
 
| 590 | 0 | 29 | $class ? : | 
 
| 602 | 6 | 12 | defined $e ? : | 
 
| 606 | 0 | 0 | defined $e ? : | 
 
| 608 | 0 | 0 | $t->can('validate') ? : | 
 
|  | 4 | 0 | ref $t eq 'CODE' ? : | 
 
| 614 | 0 | 2 | if ref $act eq 'CODE' | 
 
| 616 | 2 | 0 | if ($act eq 'next') | 
 
| 620 | 0 | 0 | if ($act eq 'last') | 
 
| 624 | 0 | 0 | if ($act eq 'die') | 
 
| 635 | 1 | 5 | if ref $act eq 'CODE' | 
 
| 638 | 3 | 3 | if ($act eq 'next') | 
 
| 639 | 3 | 0 | if $errors | 
 
| 642 | 2 | 1 | if ($act eq 'use') | 
 
| 643 | 1 | 1 | if $errors | 
 
| 646 | 1 | 0 | if ($act eq 'die') |