我在Perl代码中有以下数据结构:
my $config = {
'View::Mason' => {
comp_root => [
[ 'teamsite' => 'root/teamsite' ],
[ 'components' => 'root/components' ],
],
},
};
我正在尝试在Config::General配置文件中表示此结构。
到目前为止,我有:
<View::Mason>
<comp_root>
teamsite root/teamsite
</comp_root>
<comp_root>
components root/components
</comp_root>
</View::Mason>
至少使“comp_root”元素成为数组引用,但我不能指向另一个数组引用。
可以在Config :: General中完成吗?
答案 0 :(得分:4)
我认为Config :: General不可能。例如:
use Config::General qw(SaveConfigString);
my $config = {
'View::Mason' => {
comp_root => [
[ 'teamsite' => 'root/teamsite' ],
[ 'components' => 'root/components' ],
],
},
};
print SaveConfigString($config);
产生
<View::Mason>
comp_root ARRAY(0x94ea168)
comp_root ARRAY(0x94fbc98)
</View::Mason>
如果无法保存,可能无法加载它。
这就是我要做的事情:
答案 1 :(得分:1)
YAML可能是您的选择:
use strict;
use warnings;
use Data::Dumper qw(Dumper);
use YAML::XS qw(Load);
my $config_text = '
View::Mason:
comp_root:
-
- teamsite
- root/teamsite
-
- components
- root/components
';
my $config = Load($yaml_text);
print Dumper($config);