| line | true | false | branch | 
 
| 111 | 2 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 114 | 0 | 2 | unless defined $item->{'path'} and $item->{'path'} ne '' | 
 
| 117 | 0 | 2 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 133 | 0 | 1 | unless $last_node | 
 
| 154 | 0 | 2 | if (defined $ds->{'path_defs'}{$path}) { } | 
 
| 177 | 0 | 6 | unless $NODE_DEF{$key} | 
 
| 184 | 0 | 6 | if (not defined $value or $value eq '') { } | 
 
|  | 3 | 3 | elsif ($NODE_DEF{$key} eq 'single') { } | 
 
|  | 0 | 3 | elsif ($NODE_DEF{$key} eq 'hook') { } | 
 
|  | 0 | 3 | elsif ($NODE_DEF{$key} eq 'set') { } | 
 
|  | 1 | 2 | elsif ($NODE_DEF{$key} eq 'list') { } | 
 
| 203 | 0 | 0 | if (ref $value eq 'ARRAY') { } | 
 
| 207 | 0 | 0 | unless ref $v eq 'CODE' or not ref $v | 
 
| 214 | 0 | 0 | unless ref $value eq 'CODE' or not ref $value | 
 
| 230 | 0 | 0 | unless ($value =~ qr/ ^ (?> [\w.:][\w.:-]* | \s*,\s* )* $ /sx or $value =~ qr/ ^ (?> [+-][\w.:][\w.:-]* | \s*,\s* )* $ /sx) | 
 
| 237 | 0 | 0 | if $value =~ qr/ ^ (?> \s*,\s* )* [+-] /sx | 
 
| 245 | 0 | 1 | unless ($value =~ qr/ ^ (?> [\w.:-]+ | \s*,\s* )+ $ /sx) | 
 
| 266 | 0 | 2 | if (defined $place) | 
 
| 271 | 0 | 0 | if ($place > 0 and defined $list and $list ne '') { } | 
 
|  | 0 | 0 | elsif ($place ne '0') { } | 
 
| 291 | 0 | 2 | if ($role and not $Web::DataService::ONE_REQUEST) | 
 
| 311 | 0 | 2 | if ($role) | 
 
| 315 | 0 | 0 | if $role =~ qr/ [.] pm $ /sx | 
 
| 319 | 0 | 0 | unless %{"${role}::";} | 
 
| 327 | 0 | 2 | if ($method) | 
 
| 329 | 0 | 0 | unless defined $role | 
 
| 332 | 0 | 0 | unless $role->can($method) | 
 
| 341 | 0 | 2 | if $method | 
 
| 342 | 0 | 2 | if $ds->node_attr($path, 'file_dir') | 
 
| 343 | 0 | 2 | if $ds->node_attr($path, 'file_path') | 
 
| 345 | 0 | 2 | if ($method and $attr_count > 1) { } | 
 
|  | 0 | 2 | elsif ($attr_count > 1) { } | 
 
| 361 | 2 | 0 | if (ref $allow_format and &reftype($allow_format) eq 'HASH') | 
 
| 366 | 0 | 4 | unless ref $ds->{'format'}{$f} | 
 
| 378 | 2 | 0 | if (ref $allow_vocab and &reftype($allow_vocab) eq 'HASH') | 
 
| 383 | 0 | 4 | unless ref $ds->{'vocab'}{$v} | 
 
| 393 | 0 | 2 | if (defined $place and not $place =~ qr/^[0-9]+$/) | 
 
| 427 | 0 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 430 | 0 | 0 | unless defined $item->{'path'} and $item->{'path'} ne '' | 
 
| 433 | 0 | 0 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 449 | 0 | 0 | unless $last_node | 
 
| 466 | 0 | 0 | unless $NODE_DEF{$key} | 
 
| 472 | 0 | 0 | unless defined $place and $place =~ qr/^[0-9]+$/ | 
 
| 475 | 0 | 0 | unless defined $list and $list ne '' | 
 
| 480 | 0 | 0 | if $place | 
 
| 510 | 0 | 0 | if (ref $item eq 'HASH') { } | 
 
|  | 0 | 0 | elsif (not ref $item) { } | 
 
| 514 | 0 | 0 | unless defined $item->{'path'} and $item->{'path'} ne '' or defined $item->{'type'} and $item->{'type'} ne '' | 
 
| 517 | 0 | 0 | if $item->{'path'} ne '/' and $item->{'path'} =~ qr" ^ / | / $ | // | [?#] "sx | 
 
| 533 | 0 | 0 | unless $last_node | 
 
| 552 | 0 | 0 | unless $name | 
 
| 559 | 0 | 0 | unless $EXTENDED_DEF{$key} | 
 
| 562 | 0 | 0 | unless $disp eq '' or $disp eq 'replace' or $disp eq 'add' or $disp eq 'para' | 
 
| 565 | 0 | 0 | if ($path) { } | 
 
|  | 0 | 0 | elsif ($type eq 'format') { } | 
 
|  | 0 | 0 | elsif ($type eq 'vocab') { } | 
 
| 568 | 0 | 0 | if $item->{'name'} | 
 
| 570 | 0 | 0 | if $type ne 'node' | 
 
| 574 | 0 | 0 | unless ref $ds->{'node_attrs'}{$path} eq 'HASH' | 
 
| 577 | 0 | 0 | if $disp | 
 
| 583 | 0 | 0 | unless $name | 
 
| 587 | 0 | 0 | unless ref $ds->{'format'}{$name} eq 'Web::DataService::Format' | 
 
| 590 | 0 | 0 | if $disp | 
 
| 596 | 0 | 0 | unless $name | 
 
| 600 | 0 | 0 | unless ref $ds->{'format'}{$name} eq 'Web::DataService::Vocab' | 
 
| 603 | 0 | 0 | if $disp | 
 
| 609 | 0 | 0 | unless $type | 
 
| 612 | 0 | 0 | if $type eq 'node' | 
 
| 615 | 0 | 0 | unless $type eq 'node' or $type eq 'format' or $type eq 'vocab' | 
 
| 627 | 0 | 0 | unless defined $doc | 
 
| 631 | 0 | 0 | if ref $doc | 
 
| 643 | 0 | 0 | unless defined $item->{'doc_string'} | 
 
| 644 | 0 | 0 | if $item->{'doc_string'} ne '' | 
 
| 657 | 0 | 0 | unless defined $path | 
 
| 658 | 0 | 0 | if $path eq '' | 
 
| 677 | 0 | 19 | if (ref $path and &reftype($path) eq 'HASH') | 
 
| 689 | 2 | 17 | if (exists $ds->{'attr_cache'}{$path}{$key}) | 
 
| 701 | 0 | 17 | unless $key and defined $NODE_DEF{$key} | 
 
| 702 | 0 | 17 | unless defined $path and $path ne '' | 
 
| 704 | 0 | 17 | if $path eq '' | 
 
| 706 | 0 | 17 | unless exists $ds->{'node_attrs'}{$path} | 
 
| 732 | 3 | 21 | if ($NODE_NONHERITABLE{$key}) | 
 
| 743 | 19 | 2 | if (not exists $ds->{'node_attrs'}{$path}{$key} or $ds->{'path_compose'}{$path}{$key}) | 
 
| 750 | 7 | 12 | if (defined $parent) { } | 
 
| 762 | 0 | 12 | if (defined $config_value) { } | 
 
|  | 0 | 12 | elsif (defined $NODE_ATTR_DEFAULT{$key}) { } | 
 
|  | 0 | 12 | elsif ($key eq 'allow_method') { } | 
 
|  | 2 | 10 | elsif ($key eq 'allow_format') { } | 
 
|  | 2 | 8 | elsif ($key eq 'allow_vocab') { } | 
 
| 800 | 19 | 0 | unless (exists $ds->{'node_attrs'}{$path}{$key}) | 
 
| 816 | 0 | 2 | if ($NODE_DEF{$key} eq 'set') { } | 
 
|  | 1 | 1 | elsif ($NODE_DEF{$key} eq 'list') { } | 
 
|  | 0 | 1 | elsif ($NODE_DEF{$key} eq 'hook') { } | 
 
| 818 | 0 | 0 | ref $inherited_value eq 'HASH' ? : | 
 
| 823 | 0 | 0 | unless $v =~ /^([+-])?(.*)/ | 
 
| 825 | 0 | 0 | if (defined $1 and $1 eq '-') { } | 
 
| 847 | 1 | 0 | if defined $v and $v ne '' | 
 
| 855 | 0 | 0 | if (ref $inherited_value eq 'ARRAY' and @$inherited_value) { } | 
 
| 893 | 0 | 19 | unless defined $path | 
 
| 894 | 17 | 2 | if exists $ds->{'path_parent'}{$path} | 
 
| 898 | 1 | 1 | if ($path eq '/' or $path eq '') { } | 
 
|  | 1 | 0 | elsif ($path =~ qr" ^ [^/]+ $ "sx) { } | 
 
|  | 0 | 0 | elsif ($path =~ qr" ^ (.+) / [^/]+ "sx) { } | 
 
| 928 | 0 | 3 | unless defined $doc | 
 
| 930 | 0 | 3 | if ref $doc | 
 
| 936 | 3 | 0 | unless ($node->{'doc_string'}) | 
 
| 938 | 0 | 3 | if ($doc =~ qr/ ^ ! (.*) /sx) | 
 
| 952 | 3 | 0 | unless defined $node->{'doc_string'} | 
 
| 953 | 0 | 3 | if $node->{'doc_string'} ne '' and $doc ne '' |