Экспорт / печать значений Perl AppConfig - PullRequest
0 голосов
/ 14 июля 2011

Я анализирую один файл конфигурации как с Perl, так и с PHP, и я хочу быть абсолютно уверенным, что они получают абсолютно одинаковый результат. Поэтому я хотел бы либо экспортировать проанализированную конфигурацию в другой файл, либо (желательно) просто распечатать ее (отсортировано по алфавиту по ключам). Есть ли какой-нибудь простой способ сделать это без некрасивого анализа результатов $config->varlist(".") или $config->_dump()? Оба содержат ненужные ключи hash(), некоторые ключи, называемые 1, и значения параметров конфигурации AppConfig, такие как PEDANTIC.

.

1 Ответ

0 голосов
/ 14 июля 2011

Заканчивается следующим кодом, который работает в строгом режиме, режиме предупреждения и заражения:

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