导出/打印Perl AppConfig值



我正在用Perl和PHP解析一个配置文件,我想绝对确保它们得到完全相同的结果。因此,我想将解析后的配置导出到另一个文件,或者(最好)只是打印它(按键的字母顺序排序)。是否有一些简单的方法可以做到这一点,而不会对$config->varlist(".")$config->_dump()结果进行一些丑陋的解析?这些都包含垃圾,如hash()键,一些键称为1和AppConfig配置选项的值,如PEDANTIC

以以下代码结束,该代码适用于严格,警告和污染模式:

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 $!;

最新更新