| 510 | | if ( !ref($v) && ( $v =~ m/^[-\w]+\.yaml$/ ) ) { |
| 511 | | my $f = File::Spec->catfile( $c->path, $v ); |
| 512 | | if ( -f $f ) { |
| 513 | | require YAML::Tiny; |
| 514 | | my $y = eval { YAML::Tiny->read($f) } |
| 515 | | or die "Error reading $f: " . $YAML::Tiny::errstr; |
| 516 | | |
| 517 | | # skip over non-hash elements |
| 518 | | shift @$y while @$y && ( ref( $y->[0] ) ne 'HASH' ); |
| 519 | | if (@$y) { |
| 520 | | $r->{$p} = $y->[0]; |
| | 510 | if ( !ref($v) ) { |
| | 511 | if ( $v =~ m/^[-\w]+\.yaml$/ ) { |
| | 512 | my $f = File::Spec->catfile( $c->path, $v ); |
| | 513 | if ( -f $f ) { |
| | 514 | require YAML::Tiny; |
| | 515 | my $y = eval { YAML::Tiny->read($f) } |
| | 516 | or die "Error reading $f: " |
| | 517 | . $YAML::Tiny::errstr; |
| | 518 | # skip over non-hash elements |
| | 519 | shift @$y |
| | 520 | while @$y && ( ref( $y->[0] ) ne 'HASH' ); |
| | 521 | $r->{$p} = $y->[0] if @$y; |
| | 522 | } |
| | 523 | } elsif ($v =~ m/^\$\w+::/) { |
| | 524 | my $code = MT->handler_to_coderef($v); |
| | 525 | if (ref $code eq 'CODE') { |
| | 526 | $r->{$p} = $code->($c); |