2011-07-14 46 views
0

我使用Perl和PHP解析单个配置文件,并且我想确保它们得到完全相同的结果。因此,我想将解析后的配置导出到另一个文件或(最好)只打印它(按键按字母顺序排序)。有没有简单的方法来做到这一点,而没有一些难以解析的$config->varlist(".")$config->_dump()结果?这两个都包含像hash()键这样的垃圾,一些叫做1的键以及像PEDANTIC这样的AppConfig配置选项的值。导出/打印Perl AppConfig值

回答

0

结束了与下面的代码与严格,预警和污染模式的工作原理:

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