【问题标题】:Export / print Perl AppConfig values导出/打印 Perl AppConfig 值
【发布时间】:2011-10-05 04:21:12
【问题描述】:
我正在使用 Perl 和 PHP 解析单个配置文件,我想绝对确保它们得到完全相同的结果。因此,我想要么将解析后的配置导出到另一个文件,要么(最好)只打印它(按字母顺序排序)。有没有一些简单的方法可以做到这一点,而不会对$config->varlist(".") 或$config->_dump() 结果进行一些难看的解析?这些都包含像hash() 这样的垃圾键、一些称为1 的键以及像PEDANTIC 这样的AppConfig 配置选项的值。
【问题讨论】:
标签:
perl
configuration
app-config
【解决方案1】:
最终得到以下代码,适用于严格、警告和污染模式:
my %config_state = (
CASE => 1,
PEDANTIC => 1);
my %config_defs = ('db_user=s' => {}, ...);
...
my $config = AppConfig->new(%config_state);
for my $key (keys %config_defs) {
$config->define($key => $config_defs{ $key })
}
...
# Dump configuration to temporary file
open CONFIG, '>configuration.ini' or die $!;
my $varname;
for my $key (sort keys %config_defs) {
$varname = substr $key, 0, -2;
print CONFIG "$varname = ";
print CONFIG $config->get($varname) if defined($config->get($varname));
print CONFIG "\n";
}
close CONFIG or die $!;