# vim: cindent ft=perl sm sw=4 use warnings; use strict; use Test::More tests => 5; BEGIN { use_ok('Config::Scoped') } my ( $p, $cfg ); my $text = <<'eot'; foo { sec = eval{ 3600 * 24 }}; bar { min = perl_code{ 60 * 24 }}; eot my $expected = { 'foo' => { 'sec' => 86400 }, 'bar' => { 'min' => 1440 }, }; isa_ok( $p = Config::Scoped->new(), 'Config::Scoped' ); is_deeply( $p->parse( text => $text ), $expected, 'eval test' ); $text = <<'eot'; foo { list = eval{ [1..9] }}; bar { hash = perl_code{ {red => '#FF0000', green => '#00FF00', blue => '#0000FF'}}}; eot $expected = { 'foo' => { 'list' => [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] }, 'bar' => { 'hash' => { 'red' => '#FF0000', 'green' => '#00FF00', 'blue' => '#0000FF', } }, }; $p = Config::Scoped->new; is_deeply( $p->parse( text => $text ), $expected, 'eval test' ); $text = <<'eot'; %macro IF_LIST 'eth1,eth2,eth3'; if { list = eval { [IF_LIST] }; } eot $expected = { 'if' => { 'list' => [ 'eth1', 'eth2', 'eth3' ] } }; $p = Config::Scoped->new; is_deeply( $p->parse( text => $text ), $expected, 'macro exp. in eval' );