2011-07-14 49 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 $!;