| line |
true |
false |
branch |
|
95
|
1 |
10 |
if grep /^:strict$/, @_ |
|
111
|
1 |
270 |
if (@_ % 2) |
|
120
|
270 |
0 |
unless exists $raw_opt{'strictmode'} |
|
125
|
1 |
307 |
unless exists $known_opt{$lkey} |
|
147
|
486 |
271 |
if $package eq 'XML::Simple' |
|
148
|
1 |
270 |
if $set_mode |
|
164
|
203 |
243 |
if ($_[0] and UNIVERSAL::isa($_[0], 'XML::Simple')) { } |
|
194
|
1 |
179 |
if (not defined $target) { } |
|
|
2 |
177 |
elsif ($target eq '-') { } |
|
|
2 |
175 |
elsif (my $type = ref $target) { } |
|
|
147 |
28 |
elsif ($target =~ /<.*?>/s) { } |
|
205
|
0 |
2 |
if ($type eq 'SCALAR') { } |
|
236
|
1 |
26 |
unless defined $filename |
|
242
|
17 |
7 |
if ($self->{'opt'}{'cache'}) |
|
246
|
8 |
9 |
if $opt |
|
252
|
9 |
7 |
if ($self->{'opt'}{'cache'}) |
|
271
|
0 |
0 |
defined $fh ? : |
|
|
0 |
2 |
unless ref $fh |
|
293
|
136 |
0 |
ref $string ? : |
|
313
|
1 |
0 |
if ($script_dir) |
|
334
|
0 |
154 |
if $@ |
|
338
|
5 |
149 |
$self->{'opt'}{'keeproot'} ? : |
|
367
|
147 |
7 |
unless (defined $preferred_parser) |
|
370
|
0 |
154 |
if ($preferred_parser eq 'XML::Parser') |
|
375
|
0 |
154 |
if ($@) |
|
376
|
0 |
0 |
if ($preferred_parser) |
|
382
|
0 |
154 |
if $preferred_parser |
|
388
|
16 |
138 |
if ($filename) { } |
|
392
|
2 |
136 |
if (ref $string and ref $string ne 'SCALAR') { } |
|
422
|
0 |
0 |
if ($@) |
|
426
|
0 |
0 |
if ($self->{'opt'}{'nsexpand'}) |
|
432
|
0 |
0 |
if ($filename) { } |
|
434
|
0 |
0 |
unless open my $xfh, '<', $filename |
|
459
|
0 |
5 |
if ('VMS' eq $^O) { } |
|
483
|
2 |
6 |
unless -r $cachefile |
|
484
|
3 |
3 |
unless (stat $cachefile)[9] > (stat $filename)[9] |
|
488
|
0 |
3 |
if ('VMS' eq $^O) { } |
|
537
|
1 |
3 |
unless $MemShareCache{$filename} |
|
538
|
1 |
2 |
unless $MemShareCache{$filename}[0] > (stat $filename)[9] |
|
571
|
1 |
3 |
unless $MemCopyCache{$filename} |
|
572
|
1 |
2 |
unless $MemCopyCache{$filename}[0] > (stat $filename)[9] |
|
591
|
2 |
84 |
unless @_ |
|
599
|
3 |
76 |
if ($self->{'opt'}{'nsexpand'}) |
|
608
|
4 |
75 |
if (UNIVERSAL::isa($ref, 'ARRAY')) |
|
615
|
2 |
77 |
if ($self->{'opt'}{'keeproot'}) { } |
|
|
5 |
72 |
elsif ($self->{'opt'}{'rootname'} eq '') { } |
|
617
|
2 |
0 |
if (@keys == 1) |
|
626
|
3 |
2 |
if (UNIVERSAL::isa($ref, 'HASH')) |
|
630
|
3 |
4 |
if (ref $refsave->{$_}) { } |
|
647
|
2 |
75 |
if ($self->{'opt'}{'xmldecl'}) |
|
651
|
2 |
75 |
if ($self->{'opt'}{'outputfile'}) { } |
|
|
2 |
73 |
elsif ($self->{'opt'}{'handler'}) { } |
|
652
|
1 |
1 |
if (ref $self->{'opt'}{'outputfile'}) { } |
|
654
|
0 |
1 |
if (UNIVERSAL::isa($fh, 'GLOB') and not UNIVERSAL::can($fh, 'print')) |
|
656
|
0 |
0 |
if $@ |
|
661
|
0 |
1 |
unless open my $out, '>', "$self->{'opt'}{'outputfile'}" |
|
663
|
1 |
0 |
if $] >= 5.008 |
|
664
|
0 |
1 |
unless print $out $xml |
|
665
|
0 |
1 |
unless close $out |
|
705
|
187 |
84 |
if ($dirn eq 'in') { } |
|
715
|
2 |
269 |
if (@_ % 2) |
|
725
|
2 |
267 |
unless $known_opt{$lkey} |
|
733
|
4724 |
267 |
unless (exists $opt->{$_}) |
|
734
|
314 |
4410 |
if (exists $self->{'def_opt'}{$_}) |
|
743
|
20 |
247 |
if (exists $opt->{'rootname'}) { } |
|
744
|
1 |
19 |
unless (defined $opt->{'rootname'}) |
|
752
|
1 |
266 |
if ($opt->{'xmldecl'} and $opt->{'xmldecl'} eq '1') |
|
756
|
69 |
198 |
if (exists $opt->{'contentkey'}) { } |
|
757
|
61 |
8 |
if ($opt->{'contentkey'} =~ /^-(.*)$/) |
|
766
|
263 |
4 |
unless (exists $opt->{'normalisespace'}) |
|
769
|
262 |
5 |
unless defined $opt->{'normalisespace'} |
|
773
|
3 |
264 |
if ($opt->{'searchpath'}) { } |
|
774
|
2 |
1 |
unless (ref $opt->{'searchpath'}) |
|
782
|
18 |
249 |
if ($opt->{'cache'} and not ref $opt->{'cache'}) |
|
785
|
19 |
248 |
if ($opt->{'cache'}) |
|
789
|
2 |
17 |
unless $self->can($method) |
|
794
|
0 |
265 |
if (exists $opt->{'parseropts'}) { } |
|
795
|
0 |
0 |
if (warnings::enabled()) |
|
808
|
36 |
229 |
if (exists $opt->{'forcearray'}) { } |
|
809
|
1 |
35 |
if (ref $opt->{'forcearray'} eq 'Regexp') |
|
813
|
16 |
20 |
if (ref $opt->{'forcearray'} eq 'ARRAY') { } |
|
815
|
14 |
2 |
if (@force_list) { } |
|
818
|
3 |
18 |
if (ref $tag eq 'Regexp') { } |
|
831
|
16 |
4 |
$opt->{'forcearray'} ? : |
|
835
|
3 |
226 |
if ($opt->{'strictmode'} and $dirn eq 'in') |
|
845
|
78 |
184 |
if (exists $opt->{'keyattr'}) { } |
|
846
|
74 |
4 |
if (ref $opt->{'keyattr'}) { } |
|
847
|
58 |
16 |
if (ref $opt->{'keyattr'} eq 'HASH') { } |
|
858
|
64 |
0 |
if ($opt->{'keyattr'}{$el} =~ /^(\+|-)?(.*)$/) { } |
|
859
|
8 |
56 |
$1 ? : |
|
860
|
9 |
55 |
if ($opt->{'strictmode'} and $dirn eq 'in') |
|
861
|
3 |
6 |
if $opt->{'forcearray'} == 1 |
|
863
|
2 |
2 |
if ref $opt->{'forcearray'} eq 'HASH' and $opt->{'forcearray'}{$el} |
|
873
|
4 |
12 |
if (@{$opt->{'keyattr'};} == 0) |
|
883
|
4 |
180 |
if ($opt->{'strictmode'}) |
|
892
|
5 |
249 |
if (exists $opt->{'valueattr'}) |
|
893
|
2 |
3 |
if (ref $opt->{'valueattr'} eq 'ARRAY') |
|
901
|
14 |
240 |
if ($opt->{'grouptags'}) |
|
903
|
1 |
13 |
unless UNIVERSAL::isa($opt->{'grouptags'}, 'HASH') |
|
906
|
14 |
1 |
if $key ne $val |
|
914
|
1 |
251 |
if ($opt->{'variables'} and not UNIVERSAL::isa($opt->{'variables'}, 'HASH')) |
|
918
|
4 |
247 |
if ($opt->{'variables'}) { } |
|
|
2 |
245 |
elsif ($opt->{'varattr'}) { } |
|
948
|
23 |
4 |
if ($filename ne $file) { } |
|
949
|
22 |
1 |
if -e $file |
|
955
|
2 |
3 |
if -e $fullpath |
|
961
|
1 |
2 |
unless (@search_path) |
|
962
|
0 |
1 |
if -e $file |
|
1004
|
36 |
3501 |
if ($self->{'opt'}{'noattr'}) { } |
|
|
15 |
3486 |
elsif ($self->{'opt'}{'normalisespace'} == 2) { } |
|
1016
|
37 |
3500 |
if (my $var = $self->{'_var_values'}) |
|
1026
|
42 |
3495 |
if (not @_ and keys %$attr == 1) |
|
1028
|
7 |
1 |
if ($self->{'opt'}{'valueattrlist'} and $self->{'opt'}{'valueattrlist'}{$k}) |
|
1040
|
0 |
8308 |
unless defined $val |
|
1042
|
3376 |
4932 |
if (ref $val) { } |
|
|
4932 |
0 |
elsif ($key eq '0') { } |
|
1044
|
6 |
2 |
if not defined $val and $self->{'opt'}{'suppressempty'} |
|
1047
|
3664 |
1268 |
if $val =~ /^\s*$/s |
|
1050
|
10 |
1258 |
if $self->{'opt'}{'normalisespace'} == 2 |
|
1054
|
26 |
1242 |
if (my $var = $self->{'_var_values'}) |
|
1061
|
23 |
1245 |
if (my $var = $self->{'opt'}{'varattr'}) |
|
1062
|
10 |
13 |
if (exists $attr->{$var}) |
|
1070
|
1141 |
1 |
unless (%$attr or @_) |
|
1072
|
2 |
1139 |
$self->{'opt'}{'forcecontent'} ? : |
|
1081
|
2859 |
638 |
if (exists $attr->{$key}) { } |
|
|
4 |
634 |
elsif (defined $val and UNIVERSAL::isa($val, 'ARRAY')) { } |
|
1082
|
2729 |
130 |
if (UNIVERSAL::isa($attr->{$key}, 'ARRAY')) { } |
|
1093
|
194 |
440 |
if ($key ne $self->{'opt'}{'contentkey'} and $self->{'opt'}{'forcearray'} == 1 || ref $self->{'opt'}{'forcearray'} eq 'HASH' && ($self->{'opt'}{'forcearray'}{$key} || grep(($key =~ /$_/), @{$$self{'opt'}{'forcearray'}{'_regex'};}))) { } |
|
1117
|
2367 |
22 |
if ($self->{'opt'}{'keyattr'}) |
|
1119
|
322 |
4403 |
if (defined $val and UNIVERSAL::isa($val, 'ARRAY')) |
|
1128
|
26 |
2358 |
if ($self->{'opt'}{'grouptags'}) |
|
1130
|
41 |
10 |
unless UNIVERSAL::isa($val, 'HASH') and keys %$val == 1 |
|
1131
|
1 |
9 |
unless exists $self->{'opt'}{'grouptags'}{$key} |
|
1135
|
8 |
1 |
if ($self->{'opt'}{'grouptags'}{$key} eq $child_key) |
|
1145
|
61 |
145 |
if ($count == 1 and exists $attr->{'anon'} and UNIVERSAL::isa($attr->{'anon'}, 'ARRAY')) |
|
1155
|
11 |
2 |
if (not %$attr and exists $self->{'opt'}{'suppressempty'}) |
|
1156
|
2 |
9 |
if (defined $self->{'opt'}{'suppressempty'} and $self->{'opt'}{'suppressempty'} eq '') |
|
1166
|
10 |
2302 |
if ($self->{'opt'}{'valueattr'}) |
|
1168
|
14 |
4 |
unless $self->{'opt'}{'valueattr'}{$key} |
|
1169
|
0 |
4 |
unless UNIVERSAL::isa($val, 'HASH') and keys %$val == 1 |
|
1171
|
0 |
4 |
unless $k eq $self->{'opt'}{'valueattr'}{$key} |
|
1206
|
20 |
1 |
if defined $value |
|
1251
|
189 |
133 |
if (ref $self->{'opt'}{'keyattr'} eq 'HASH') { } |
|
1252
|
68 |
121 |
unless exists $self->{'opt'}{'keyattr'}{$name} |
|
1255
|
1908 |
4 |
if (UNIVERSAL::isa($arrayref->[$i], 'HASH') and exists $arrayref->[$i]{$key}) { } |
|
1259
|
4 |
1904 |
if (ref $val) |
|
1264
|
2 |
1902 |
if $self->{'opt'}{'normalisespace'} == 1 |
|
1266
|
3 |
1901 |
if exists $hashref->{$val} |
|
1268
|
4 |
1899 |
if $flag eq '-' |
|
1269
|
1901 |
2 |
unless $flag eq '+' |
|
1286
|
76 |
129 |
unless UNIVERSAL::isa($arrayref->[$i], 'HASH') |
|
1289
|
119 |
54 |
if (defined $arrayref->[$i]{$key}) |
|
1291
|
2 |
117 |
if (ref $val) |
|
1292
|
1 |
1 |
unless $default_keys |
|
1297
|
2 |
115 |
if $self->{'opt'}{'normalisespace'} == 1 |
|
1299
|
1 |
116 |
if exists $hashref->{$val} |
|
1312
|
36 |
121 |
if ($self->{'opt'}{'collapseagain'}) |
|
1334
|
5 |
8 |
if $self->{'opt'}{'strictmode'} |
|
1335
|
5 |
3 |
if (warnings::enabled()) |
|
1384
|
22 |
48 |
unless ref $val eq 'HASH' and keys %$val == 1 and exists $val->{$contentkey} |
|
1421
|
81 |
2105 |
$indent eq '' ? : |
|
1422
|
6 |
2180 |
if ($self->{'opt'}{'noindent'}) |
|
1431
|
2170 |
16 |
if ($refaddr) { } |
|
1433
|
1 |
2169 |
if $self->{'_ancestors'}{$refaddr} |
|
1437
|
14 |
2 |
if ($named) { } |
|
1440
|
1 |
13 |
$self->{'opt'}{'noescape'} ? : |
|
1452
|
2003 |
79 |
if (UNIVERSAL::isa($ref, 'HASH') and keys %$ref and $self->{'opt'}{'keyattr'} and not $is_root) |
|
1467
|
1980 |
189 |
if (UNIVERSAL::isa($ref, 'HASH')) { } |
|
|
188 |
1 |
elsif (UNIVERSAL::isa($ref, 'ARRAY')) { } |
|
1471
|
12 |
1968 |
if ($self->{'opt'}{'grouptags'}) |
|
1474
|
5 |
13 |
if ($self->{'opt'}{'grouptags'}{$key}) |
|
1487
|
5 |
1975 |
if ($self->{'nsup'}) |
|
1493
|
2 |
3 |
if (exists $ref->{'xmlns'}) |
|
1505
|
8 |
1 |
if ($uri) |
|
1506
|
1 |
7 |
if ($uri eq $xmlns_ns) |
|
1518
|
7 |
1 |
if ($uri) |
|
1519
|
4 |
3 |
if ($default_ns_uri and $uri eq $default_ns_uri) { } |
|
1525
|
1 |
2 |
unless ($prefix) |
|
1542
|
1977 |
3 |
if ($named) |
|
1546
|
1977 |
3 |
if (keys %$ref) { } |
|
1550
|
2 |
3946 |
if substr($key, 0, 1) eq '-' |
|
1551
|
5 |
3941 |
unless (defined $value) |
|
1552
|
1 |
4 |
if $self->{'opt'}{'suppressempty'} |
|
1553
|
2 |
2 |
unless (exists $self->{'opt'}{'suppressempty'} and not defined $self->{'opt'}{'suppressempty'}) |
|
1556
|
1 |
1 |
if warnings::enabled() |
|
1558
|
1 |
3 |
if ($key eq $self->{'opt'}{'contentkey'}) { } |
|
1562
|
1 |
2 |
exists $self->{'opt'}{'suppressempty'} ? : |
|
1566
|
2 |
3 |
if (not ref $value and $self->{'opt'}{'valueattr'} and $self->{'opt'}{'valueattr'}{$key}) |
|
1575
|
187 |
3758 |
if (ref $value or $self->{'opt'}{'noattr'}) { } |
|
1580
|
19 |
3739 |
if ($key eq $self->{'opt'}{'contentkey'}) { } |
|
1581
|
19 |
0 |
unless $self->{'opt'}{'noescape'} |
|
1585
|
3737 |
2 |
unless $self->{'opt'}{'noescape'} |
|
1587
|
3 |
3736 |
if $self->{'opt'}{'attrindent'} and not $first_arg |
|
1598
|
180 |
1799 |
if (@nested or defined $text_content) { } |
|
1599
|
177 |
3 |
if ($named) { } |
|
1601
|
22 |
155 |
if (defined $text_content) { } |
|
1603
|
0 |
22 |
if @nested |
|
1608
|
155 |
22 |
if (@nested) |
|
1620
|
5 |
1974 |
if $self->{'nsup'} |
|
1628
|
1 |
1 |
if not defined $value and $self->{'opt'}{'suppressempty'} |
|
1629
|
930 |
1920 |
if (not ref $value) { } |
|
|
1877 |
43 |
elsif (UNIVERSAL::isa($value, 'HASH')) { } |
|
1632
|
1 |
929 |
$self->{'opt'}{'noescape'} ? : |
|
1668
|
0 |
1977 |
if $self->{'opt'}{'nosort'} |
|
1675
|
1877 |
100 |
if (ref $keyattr eq 'HASH') { } |
|
|
95 |
5 |
elsif (ref $keyattr eq 'ARRAY') { } |
|
1676
|
1847 |
30 |
if (exists $keyattr->{$name} and exists $hash{$keyattr->{$name}[0]}) |
|
1683
|
21 |
216 |
if (exists $hash{$_}) |
|
1704
|
2 |
4695 |
unless defined $data |
|
1711
|
4691 |
4 |
unless my $level = $self->{'opt'}{'numericescape'} |
|
1719
|
2 |
2 |
if ($self->{'opt'}{'numericescape'} eq '2') { } |
|
1761
|
0 |
2003 |
$self->{'opt'}{'nosort'} ? : |
|
1764
|
1896 |
1948 |
unless UNIVERSAL::isa($value, 'HASH') |
|
1766
|
1931 |
17 |
if (ref $self->{'opt'}{'keyattr'} eq 'HASH') { } |
|
1767
|
2 |
1929 |
unless defined $self->{'opt'}{'keyattr'}{$parent} |
|
1804
|
7 |
154 |
unless $self->{'opt'} |
|
1816
|
11 |
3520 |
if ($self->{'opt'}{'nsexpand'}) |
|
1818
|
6 |
5 |
if ($element->{'NamespaceURI'}) |
|
1823
|
3531 |
0 |
if ($element->{'Attributes'}) |
|
1825
|
6 |
4138 |
if ($self->{'opt'}{'nsexpand'}) { } |
|
1827
|
4 |
2 |
if ($attr->{'NamespaceURI'}) |
|
1830
|
0 |
6 |
if $name eq $bad_def_ns_jcn |
|
1853
|
11 |
4932 |
if ($pos > 0 and $$clist[$pos - 1] eq '0') { } |
|
1881
|
154 |
7 |
if $self->{'nocollapse'} |
|
1886
|
1 |
6 |
if ($self->{'opt'}{'keeproot'}) { } |
|
1893
|
2 |
5 |
if ($self->{'opt'}{'datahandler'}) |