| line |
true |
false |
branch |
|
177
|
2 |
60 |
unless ref $args and &reftype($args) eq 'HASH' |
|
180
|
29 |
31 |
if $args->{'file'} |
|
181
|
31 |
29 |
if $args->{'components'} |
|
182
|
1 |
59 |
if $argscount == 0 |
|
184
|
1 |
58 |
if $argscount == 2 |
|
187
|
4 |
54 |
if (exists $args->{'path_col_idx'}) |
|
189
|
1 |
3 |
unless $args->{'path_col_idx'} =~ /^\d+$/ |
|
194
|
5 |
52 |
exists $args->{'path_col_sep'} ? : |
|
195
|
5 |
52 |
if (exists $args->{'path_col_sep'}) { } |
|
203
|
30 |
27 |
if ($args->{'components'}) { } |
|
205
|
2 |
28 |
unless ref $args->{'components'} and &reftype($args->{'components'}) eq 'HASH' |
|
208
|
2 |
51 |
unless exists $args->{'components'}{$k} |
|
211
|
3 |
48 |
unless ref $args->{'components'}{$k} and &reftype($args->{'components'}{$k}) eq 'ARRAY' |
|
214
|
2 |
290 |
unless ref $row and &reftype($row) eq 'ARRAY' |
|
229
|
1 |
26 |
unless -f $args->{'file'} |
|
236
|
0 |
26 |
unless my $csv = 'Text::CSV_XS'->new($args) |
|
239
|
0 |
26 |
unless open my $IN, '<', $data->{'file'} |
|
244
|
0 |
23 |
unless close $IN |
|
262
|
26 |
21 |
if (not $components) { } |
|
274
|
10 |
205 |
if $fields_seen{$reserved} |
|
278
|
2 |
41 |
if @bad_fields |
|
288
|
21 |
26 |
$components ? : |
|
292
|
2 |
45 |
if $data->{'path_col_idx'} > $#{$fields_ref;} |
|
306
|
6 |
531 |
unless ($$rec[$data->{'path_col_idx'}] =~ /^\Q$data->{'path_col_sep'}\E/) |
|
311
|
5 |
532 |
if ($this_row_count != $field_count) |
|
323
|
2 |
39 |
if @bad_path_cols |
|
327
|
5 |
499 |
if $paths_seen{$path} > 1 |
|
336
|
3 |
36 |
if @dupe_paths |
|
344
|
2 |
34 |
if @bad_count_records |
|
349
|
0 |
34 |
unless my $path_csv = 'Text::CSV_XS'->new($path_args) |
|
355
|
324 |
123 |
if (@columns > 2) |
|
358
|
4 |
320 |
unless (exists $paths_seen{$parent}) |
|
370
|
2 |
32 |
if scalar keys %missing_parents |
|
593
|
698 |
182 |
if ($i != $self->{'path_col_idx'}) { } |
|
639
|
390 |
78 |
if ($i != $self->{'path_col_idx'}) { } |
|
708
|
5 |
4 |
if (defined $args) |
|
709
|
2 |
3 |
unless ref $args and &reftype($args) eq 'HASH' |
|
712
|
2 |
1 |
unless $args->{'generations'} and $args->{'generations'} =~ /^[0-9]+$/ |
|
722
|
61 |
169 |
if ($q =~ /^\Q$p$self->{'path_col_sep'}\E/) |
|
723
|
48 |
13 |
if (not $args->{'generations'}) { } |
|
730
|
9 |
4 |
if scalar(@d) - scalar(@c) <= $args->{'generations'} |
|
784
|
15 |
11 |
if (defined $args) |
|
785
|
2 |
13 |
unless ref $args and &reftype($args) eq 'HASH' |
|
788
|
2 |
11 |
unless $args->{'generations'} and $args->{'generations'} =~ /^[0-9]+$/ |
|
790
|
6 |
16 |
if (exists $self->{'descendant_counts'}) { } |
|
792
|
2 |
4 |
unless exists $descendant_counts->{$node} |
|
798
|
1 |
15 |
unless exists $hashified->{$node} |
|
805
|
36 |
74 |
if ($q =~ /^\Q$p$self->{'path_col_sep'}\E/) |
|
806
|
10 |
26 |
if (not $args->{'generations'}) { } |
|
813
|
17 |
9 |
if scalar(@d) - scalar(@c) <= $args->{'generations'} |
|
910
|
8 |
25 |
if (defined $args) |
|
911
|
2 |
6 |
unless ref $args and &reftype($args) eq 'HASH' |
|
919
|
39 |
388 |
if ($args->{'root_str'}) { } |
|
923
|
26 |
362 |
if ($args->{'remove_leading_path_col_sep'}) { } |
|
930
|
52 |
375 |
if ($args->{'key_delim'}) |
|
991
|
9 |
6 |
if (defined $args) |
|
992
|
2 |
7 |
unless ref $args and &reftype($args) eq 'HASH' |
|
995
|
8 |
5 |
if (exists $args->{$w}) |
|
997
|
2 |
6 |
unless $args->{$w} =~ /^\d+$/ |
|
1019
|
156 |
342 |
if (scalar @{$components_by_row[$r];} == $depth) |
|
1027
|
120 |
36 |
length $parent_of_name ? : |
|
1038
|
120 |
36 |
if length $parent_of_name |
|
1127
|
13 |
1 |
if (defined $args) { } |
|
1128
|
2 |
11 |
unless ref $args and &reftype($args) eq 'HASH' |
|
1131
|
1 |
10 |
unless exists $args->{'adjacentified'} |
|
1134
|
2 |
8 |
unless ref $args->{'adjacentified'} and &reftype($args->{'adjacentified'}) eq 'ARRAY' |
|
1153
|
7 |
1 |
defined $args->{'csvfile'} ? : |
|
1165
|
0 |
8 |
unless open my $OUT, '>:encoding(utf8)', $csvfile |
|
1167
|
1 |
7 |
defined $csv_args->{'eol'} ? : |
|
1175
|
0 |
8 |
unless close $OUT |