| line |
true |
false |
branch |
|
96
|
123 |
0 |
wantarray ? : |
|
102
|
123 |
0 |
wantarray ? : |
|
108
|
0 |
31 |
wantarray ? : |
|
122
|
0 |
241 |
unless (exists $valid{$_}) |
|
127
|
0 |
167 |
if $type and $type ne 'SCALAR' and not $valid{$_} =~ /$type/ |
|
129
|
0 |
74 |
unless $type or $valid{$_} =~ /SCALAR/ |
|
132
|
0 |
123 |
if @invalid |
|
134
|
0 |
123 |
if @badtype |
|
142
|
0 |
6 |
unless (exists $valid{$_}) |
|
147
|
0 |
6 |
if $type and $type ne 'SCALAR' and not $valid{$_} =~ /$type/ |
|
149
|
0 |
0 |
unless $type or $valid{$_} =~ /SCALAR/ |
|
152
|
0 |
123 |
if @invalid |
|
154
|
0 |
123 |
if @badtype |
|
162
|
0 |
55 |
if ref $$defn{'field_attr'}{$field} ne 'HASH' |
|
166
|
45 |
46 |
unless exists $valid{$_} |
|
167
|
0 |
46 |
unless $valid{$_} |
|
169
|
46 |
0 |
if (not ref $valid{$_}) { } |
|
|
0 |
0 |
elsif (ref $valid{$_} eq 'ARRAY') { } |
|
170
|
0 |
26 |
if $type and $type ne 'SCALAR' and not $valid{$_} =~ /$type/ |
|
172
|
0 |
20 |
unless $type or $valid{$_} =~ /SCALAR/ |
|
176
|
0 |
0 |
if ($type) { } |
|
181
|
0 |
0 |
unless grep /^$val$/, @{$valid{$_};} |
|
189
|
0 |
55 |
if @badtype |
|
207
|
0 |
246 |
if ref $hash1 ne 'HASH' |
|
208
|
0 |
246 |
if $hash2 and ref $hash2 ne 'HASH' |
|
213
|
2 |
244 |
if ($single_arg) |
|
220
|
123 |
123 |
unless substr($sub, -7) eq '::merge' |
|
229
|
153 |
242 |
if (ref $$hash2{$key} eq 'HASH' and ref $$merge{$key} eq 'HASH') { } |
|
231
|
123 |
30 |
if (grep /^$key$/, @recurse_keys) { } |
|
246
|
2 |
244 |
if (not defined wantarray) { } |
|
249
|
0 |
2 |
if exists $$self{'defn_t'} |
|
267
|
0 |
31 |
if $defn and ref $defn ne 'HASH' |
|
270
|
0 |
31 |
if $$defn{'table'} and not ref $$defn{'table'} |
|
309
|
0 |
7 |
unless ref $set |
|
310
|
0 |
7 |
if (ref $set eq 'CODE') { } |
|
|
0 |
7 |
elsif (blessed $set and $set->can('Next')) { } |
|
|
0 |
7 |
elsif (blessed $set and $set->can('next')) { } |
|
|
6 |
1 |
elsif (ref $set eq 'ARRAY') { } |
|
|
0 |
1 |
elsif (ref $set and ref $set ne 'HASH' and $set->isa('Class::DBI')) { } |
|
|
1 |
0 |
elsif (defined eval {
do {
keys %$set
}
}) { } |
|
313
|
0 |
0 |
if eval {
do {
keys %$row
}
} |
|
316
|
0 |
0 |
$set->can('First') ? : |
|
318
|
0 |
0 |
if eval {
do {
keys %$row
}
} |
|
321
|
0 |
0 |
$set->can('first') ? : |
|
323
|
0 |
0 |
if eval {
do {
keys %$row
}
} |
|
327
|
0 |
6 |
unless (@$set) |
|
333
|
3 |
3 |
if (ref $obj eq 'HASH') { } |
|
|
3 |
0 |
elsif (ref $obj eq 'ARRAY') { } |
|
|
0 |
0 |
elsif ($obj->isa('Class::DBI')) { } |
|
338
|
0 |
3 |
if ($$defn{'labels'}) { } |
|
349
|
0 |
0 |
if not @col and $obj->columns('Essential') |
|
351
|
0 |
0 |
unless @col |
|
352
|
0 |
0 |
if @col |
|
355
|
0 |
6 |
unless (ref $$defn{'fields'} and @{$$defn{'fields'};}) |
|
356
|
0 |
0 |
unless (defined eval {
do {
$$defn{'fields'} = [sort(keys %$obj)]
}
}) |
|
364
|
0 |
0 |
if not @col and $set->columns('Essential') |
|
366
|
0 |
0 |
unless @col |
|
367
|
0 |
0 |
if @col |
|
372
|
1 |
0 |
if defined $first |
|
374
|
0 |
1 |
if ($ref) { } |
|
376
|
0 |
0 |
if ($ref eq 'HASH') { } |
|
|
0 |
0 |
elsif (ref $$set[0] ne 'ARRAY') { } |
|
|
0 |
0 |
elsif ($$defn{'labels'}) { } |
|
399
|
0 |
7 |
unless ref $$defn{'fields'} eq 'ARRAY' |
|
412
|
7 |
100 |
if not $$self{'defn_t'}{'fields'} or ref $$self{'defn_t'}{'fields'} ne 'ARRAY' or not @{$$self{'defn_t'}{'fields'};} |
|
421
|
0 |
1 |
unless ref $$defn{'fields'} eq 'ARRAY' and ref $add eq 'HASH' |
|
425
|
4 |
2 |
unless $$add{$f} |
|
426
|
1 |
1 |
if (ref $$add{$f} eq 'ARRAY') { } |
|
450
|
2488 |
2816 |
if (not ref $this) { } |
|
|
249 |
2567 |
elsif (ref $this eq 'ARRAY') { } |
|
|
2458 |
109 |
elsif (ref $this eq 'HASH') { } |
|
|
109 |
0 |
elsif (ref $this eq 'CODE') { } |
|
|
0 |
0 |
elsif (sprintf $this) { } |
|
498
|
1 |
106 |
ref $$defn_t{'in_fields'} eq 'ARRAY' ? : |
|
502
|
1 |
106 |
if $$defn_t{'fields_add'} |
|
503
|
26 |
81 |
if $$defn_t{'fields_omit'} |
|
506
|
10 |
97 |
if (ref $$defn_t{'labels'} eq 'HASH') |
|
512
|
1 |
106 |
if (ref $$defn_t{'label_links'} eq 'HASH') |
|
520
|
0 |
107 |
if ($$defn_t{'derived'}) |
|
527
|
1 |
106 |
if ($$self{'defn_t'}{'style'} eq 'across' and ref $$defn_t{'thtr'} eq 'HASH') |
|
529
|
1 |
0 |
unless exists $$defn_t{'field_attr'}{-'defaults'}{"label_$_"} |
|
534
|
8 |
99 |
if (ref $$defn_t{'th'} eq 'HASH') |
|
536
|
8 |
0 |
unless exists $$defn_t{'field_attr'}{-'defaults'}{"label_$_"} |
|
541
|
4 |
103 |
if (ref $$defn_t{'td'} eq 'HASH') |
|
549
|
285 |
4 |
unless /^\(\?.*\)$/ |
|
555
|
6 |
101 |
if ($$defn_t{'stripe'} and ref $$defn_t{'stripe'} ne 'ARRAY') |
|
560
|
7 |
100 |
if ($$defn_t{'thead'}) |
|
562
|
4 |
3 |
unless ref $$defn_t{'thead'} |
|
564
|
3 |
104 |
if ($$defn_t{'tfoot'}) |
|
566
|
2 |
1 |
unless ref $$defn_t{'tfoot'} |
|
570
|
23 |
84 |
if ($$defn_t{'tbody'}) |
|
571
|
13 |
10 |
if (ref $$defn_t{'tbody'}) { } |
|
574
|
12 |
5 |
if /^-/ |
|
603
|
1 |
2 |
if (my $label = $grouped_fields{$f}) { } |
|
612
|
1 |
0 |
if $fn eq $g |
|
616
|
1 |
0 |
if (@next_group == @{$$labelgroups{$label};} - 1) { } |
|
636
|
1 |
0 |
if (@fields2) |
|
638
|
1 |
2 |
if (my $grouped_fields = $$labelgroups{$f}) { } |
|
663
|
2245 |
34 |
if (ref $attr eq 'HASH') |
|
665
|
24 |
340 |
unless defined $$attr{$a} |
|
666
|
316 |
24 |
if ($$attr{$a} ne '') { } |
|
670
|
12 |
12 |
if ($MINIMISED_ATTR{$a}) { } |
|
671
|
6 |
6 |
$xhtml ? : |
|
679
|
6 |
2273 |
if $close and $xhtml |
|
704
|
0 |
321 |
unless grep /^$type$/, ('title', 'text', 'caption') |
|
709
|
2 |
319 |
if (ref $elt eq 'CODE') { } |
|
|
16 |
303 |
elsif (not ref $elt) { } |
|
718
|
16 |
0 |
if ($DEFAULT_DEFN{$type} and ref $DEFAULT_DEFN{$type} eq 'HASH') |
|
725
|
319 |
0 |
if (ref $elt eq 'HASH') |
|
726
|
294 |
25 |
unless defined $$elt{'value'} or defined $$elt{'title'} |
|
729
|
6 |
19 |
if defined $$elt{'value'} and $$elt{'value'} =~ /^\s*\<.*\>\s*$/s |
|
731
|
0 |
19 |
if defined $$elt{'title'} and $$elt{'title'} =~ /^\s*\<.*\>\s*$/s |
|
735
|
13 |
4 |
if defined $$elt{'value'} and defined $$elt{'format'} and not ref $$elt{'format'} |
|
740
|
3 |
1 |
if defined $$elt{'value'} and defined $$elt{'format'} and ref $$elt{'format'} eq 'CODE' |
|
745
|
2 |
1 |
if ($$elt{'title'}) |
|
767
|
7 |
314 |
if defined $data and $data ne '' and substr($data, -1) ne "\n" |
|
783
|
105 |
109 |
if ($post_table and ref $$defn_t{'caption'} ne 'HASH' || !$$defn_t{'caption'}{'type'} || $$defn_t{'caption'}{'type'} ne 'caption_caption') { } |
|
|
2 |
107 |
elsif (not $post_table and (ref $$defn_t{'caption'} eq 'HASH' and $$defn_t{'caption'}{'type'} and $$defn_t{'caption'}{'type'} eq 'caption_caption')) { } |
|
793
|
1 |
1 |
if ($$defn_t{'caption'}{'format'} || '') eq $DEFAULT_TEXT_FORMAT |
|
808
|
104 |
3 |
unless $$self{'defn_t'}{'colgroups'} |
|
812
|
1 |
7 |
if ($$cg{'cols'} and ref $$cg{'cols'} and ref $$cg{'cols'} eq 'ARRAY') { } |
|
834
|
107 |
0 |
if $$self{'defn_t'}{'title'} |
|
835
|
107 |
0 |
if $$self{'defn_t'}{'text'} |
|
843
|
1 |
106 |
if exists $$self{'defn_t'}{'table'} and not $$self{'defn_t'}{'table'} |
|
851
|
1 |
106 |
if exists $$self{'defn_t'}{'table'} and not $$self{'defn_t'}{'table'} |
|
871
|
0 |
28 |
if $ref and $ref ne 'CODE' |
|
872
|
21 |
7 |
if $ref eq 'CODE' |
|
873
|
7 |
21 |
unless $ref |
|
892
|
0 |
30 |
if $ref and $ref ne 'CODE' |
|
894
|
16 |
14 |
if $ref eq 'CODE' |
|
896
|
14 |
16 |
unless $ref |
|
898
|
30 |
0 |
if ($ldata) |
|
903
|
34 |
117 |
if ($attr =~ /^link_/) |
|
906
|
7 |
27 |
ref $val eq 'CODE' ? : |
|
927
|
108 |
1522 |
if $data ne '' and $$defn{'trim'} |
|
932
|
1515 |
0 |
if $data ne '' and $$fattr{'escape'} || !exists($$fattr{'escape'}) |
|
936
|
28 |
1602 |
if $$fattr{'format'} |
|
940
|
30 |
1600 |
if $data ne '' and $$fattr{'link'} |
|
944
|
6 |
1624 |
if defined $$defn{'null'} and $data eq '' |
|
956
|
2 |
389 |
if (ref $label eq 'CODE') { } |
|
962
|
356 |
35 |
unless defined $l |
|
963
|
2 |
389 |
if $l eq '' and defined $$self{'defn_t'}{'null'} |
|
986
|
52 |
150 |
if (substr($_, 0, 6) eq 'label_') { } |
|
|
18 |
132 |
elsif (substr($_, 0, 6) eq 'tfoot_') { } |
|
1009
|
481 |
112 |
if exists $$self{'field_attr'}{$_} |
|
1010
|
13 |
580 |
if /^link_/ |
|
1011
|
25 |
568 |
if ref $tx_attr{$_} eq 'CODE' |
|
1025
|
0 |
391 |
if $$self{'defn_t'}{'data_attr'}{$field} |
|
1031
|
9 |
6 |
unless $field =~ /$regex/ |
|
1056
|
175 |
1491 |
if (exists $$fattr{'value'} and not ref $$fattr{'value'}) { } |
|
|
1482 |
18 |
elsif (ref $row and not $$fattr{'derived'}) { } |
|
1057
|
175 |
0 |
defined $$fattr{'value'} ? : |
|
1062
|
0 |
1482 |
if (blessed $row) { } |
|
|
1149 |
333 |
elsif (ref $row eq 'ARRAY') { } |
|
|
295 |
38 |
elsif (ref $row eq 'HASH' and exists $$row{$field}) { } |
|
1064
|
0 |
0 |
if (eval {
do {
$row->can($field)
}
} and $field ne 'delete') { } |
|
|
0 |
0 |
elsif (eval {
do {
$row->can('get_column')
}
}) { } |
|
1075
|
1149 |
0 |
keys %{$$defn{'field_map'};} ? : |
|
1076
|
1143 |
6 |
if defined $i |
|
1084
|
37 |
1629 |
if (exists $$fattr{'value'} and ref $$fattr{'value'}) |
|
1086
|
37 |
0 |
if ($ref eq 'CODE') { } |
|
1094
|
0 |
1666 |
if not defined $value and exists $$fattr{'default'} |
|
1096
|
1584 |
82 |
defined $value ? : |
|
1107
|
0 |
6 |
unless my $composite = $$fattr{'composite'} |
|
1115
|
0 |
6 |
if (ref $composite_join eq 'CODE') { } |
|
1133
|
6 |
1624 |
if ($$fattr{'composite'}) { } |
|
1145
|
1630 |
0 |
wantarray ? : |
|
1155
|
153 |
1457 |
!defined($row) ? : |
|
1156
|
0 |
1610 |
unless defined $data |
|
1169
|
79 |
3 |
if (ref $v eq 'CODE') { } |
|
1192
|
1610 |
20 |
unless defined $tags |
|
1193
|
0 |
1630 |
if %args |
|
1196
|
391 |
1239 |
unless $$self{'defn_t'}{'data_attr'}{$field} |
|
1200
|
1630 |
0 |
unless ($fattr and $tx_attr) |
|
1201
|
161 |
1469 |
if (not defined $row or $row eq 'thead') { } |
|
|
12 |
1457 |
elsif ($row eq 'tfoot') { } |
|
1218
|
63 |
1567 |
if $tx_code |
|
1222
|
3 |
1627 |
if $tx_attr_extra and $$tx_attr_extra{$field} |
|
1226
|
1610 |
20 |
$tags ? : |
|
1228
|
4 |
1606 |
$$tx_attr{'colspan'} ? : |
|
|
1610 |
0 |
if $skip_count and ref $skip_count and ref $skip_count eq 'SCALAR' |
|
1280
|
428 |
31 |
unless $stripe |
|
1283
|
22 |
9 |
if (defined $$stripe[$r]) |
|
1284
|
13 |
9 |
if (not ref $$stripe[$r]) { } |
|
|
9 |
0 |
elsif (ref $$stripe[$r] eq 'HASH') { } |
|
1286
|
12 |
1 |
unless $rownum == 0 and exists $$tr{'bgcolor'} |
|
1292
|
5 |
4 |
if ($$stripe[$r]{'class'} and $$tr{'class'}) { } |
|
|
1 |
3 |
elsif ($rownum == 0) { } |
|
1299
|
1 |
0 |
unless exists $$tr{$_} |
|
1322
|
286 |
121 |
unless $$self{'defn_t'}{'tbody'} |
|
1325
|
36 |
85 |
if (not ref $$self{'defn_t'}{'tbody'}) { } |
|
|
18 |
67 |
elsif ($$self{'defn_t'}{'tbody'}{'-field'}) { } |
|
|
54 |
13 |
elsif (my $r = $$self{'defn_t'}{'tbody'}{'-rows'}) { } |
|
1326
|
10 |
26 |
unless $$self{'defn_t'}{'tbody_open'} |
|
1332
|
15 |
3 |
if (exists $$self{'defn_t'}{'tbody_field_value'}) { } |
|
1333
|
8 |
7 |
if ($value eq $$self{'defn_t'}{'tbody_field_value'} or not defined $value || defined $$self{'defn_t'}{'tbody_field_value'}) { } |
|
1350
|
28 |
26 |
if int(($rownum - 1) % $r) == 0 |
|
1355
|
2 |
11 |
unless $$self{'defn_t'}{'tbody_open'} |
|
1359
|
50 |
63 |
if ($generate) |
|
1360
|
27 |
23 |
if ($$self{'defn_t'}{'tbody_open'}) |
|
1377
|
38 |
421 |
if ($rownum == 0) { } |
|
1378
|
5 |
33 |
if $$defn_t{'thtr'} |
|
1382
|
3 |
418 |
if (ref $$defn_t{'tr'} eq 'CODE' and $row) { } |
|
1386
|
97 |
321 |
unless ref $$defn_t{'tr'} eq 'HASH' |
|
1391
|
16 |
13 |
if ref $v eq 'CODE' |
|
1408
|
1 |
450 |
$tx_attr_extra ? : |
|
1418
|
10 |
1578 |
if ($skip_count > 0) |
|
1423
|
145 |
1433 |
if (not $row) { } |
|
1443
|
0 |
105 |
unless ref $set |
|
1444
|
0 |
105 |
if (ref $set eq 'CODE') { } |
|
|
0 |
105 |
elsif (blessed $set and $set->can('Next')) { } |
|
|
0 |
105 |
elsif (blessed $set and $set->can('next')) { } |
|
|
99 |
6 |
elsif (ref $set eq 'ARRAY') { } |
|
|
6 |
0 |
elsif (ref $set eq 'HASH' or eval {
do {
keys %$set
}
}) { } |
|
1446
|
0 |
0 |
$row ? : |
|
1451
|
0 |
0 |
$row ? : |
|
1456
|
0 |
0 |
$row ? : |
|
1461
|
99 |
390 |
if $row > $#$set |
|
1469
|
6 |
0 |
if (not ref $$set{$k}) { } |
|
1471
|
6 |
6 |
if $row++ |
|
1479
|
0 |
0 |
if $row > $#k |
|
1497
|
105 |
0 |
if ref $$self{'defn_t'}{'fields'} eq 'ARRAY' |
|
1504
|
37 |
68 |
if ($$self{'defn_t'}{'labels'} and @fields) { } |
|
|
3 |
65 |
elsif ($$self{'defn_t'}{'thead'}) { } |
|
1505
|
4 |
33 |
if $$self{'defn_t'}{'thead'} |
|
1508
|
1 |
36 |
if ($$self{'defn_t'}{'labelgroups'}) { } |
|
1511
|
1 |
0 |
if @$fields2 |
|
1517
|
4 |
33 |
if ($$self{'defn_t'}{'thead'}) |
|
1524
|
0 |
3 |
$data_prepend && @$data_prepend ? : |
|
1525
|
3 |
0 |
if ($row) |
|
1535
|
3 |
102 |
if ($data_prepend and @$data_prepend) |
|
1547
|
4 |
101 |
if (my $data_append = $$self{'defn_t'}{'data_append'}) |
|
1555
|
23 |
82 |
if $$self{'defn_t'}{'tbody_open'} |
|
1558
|
3 |
102 |
if ($$self{'defn_t'}{'tfoot'}) |
|
1578
|
8 |
0 |
if ($$self{'defn_t'}{'labels'}) |
|
1585
|
0 |
24 |
if ($skip_count > 0) |
|
1606
|
0 |
2 |
unless ref $set |
|
1607
|
0 |
2 |
if (ref $set eq 'CODE') { } |
|
|
0 |
2 |
elsif (blessed $set and $set->can('Next')) { } |
|
|
0 |
2 |
elsif (blessed $set and $set->can('next')) { } |
|
|
2 |
0 |
elsif (ref $set eq 'ARRAY') { } |
|
|
0 |
0 |
elsif (ref $set eq 'HASH' or eval {
do {
keys %$set
}
}) { } |
|
1614
|
0 |
0 |
if (ref $row) |
|
1623
|
0 |
0 |
if (ref $row) |
|
1671
|
105 |
2 |
if ($$defn_t{'style'} eq 'down') { } |
|
|
2 |
0 |
elsif ($$defn_t{'style'} eq 'across') { } |
|
1701
|
0 |
107 |
unless ref $set |
|
1704
|
6 |
101 |
unless (ref $self and blessed $self and $self->isa('HTML::Tabulate')) |
|
1712
|
90 |
17 |
if (ref $defn eq 'HASH' and keys %$defn) { } |