AppConfig :: File получение значений - PullRequest
1 голос
/ 18 июля 2011

Я пытаюсь использовать AppConfig :: File для обработки файла конфигурации.Тем не менее, я всегда получаю пустое значение от объекта.Ниже приведен код:

my $state = AppConfig::State->new( {
    CREATE=>1,
  } );
my $cfgfile = AppConfig::File->new($state);
$cfgfile->parse('sample.cfg');
my $temp = $cfgfile->{foo};
print "foo value: $temp\n";

Это в файле sample.cfg:

## comment
foo = me

Что я сделал не так?Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Решением было включить параметр ARGCOUNT в определение переменной.Не уверен, как это сделать динамически из файла.

use warnings;
use strict;

use AppConfig ':argcount';
use AppConfig::File;

my $state = AppConfig::State->new( {
    CREATE=>1,
  } );
$state->define('foo', { ARGCOUNT => ARGCOUNT_ONE });
my $cfgfile = AppConfig::File->new($state);
$cfgfile->parse('sample.cfg');
print "state value: '", $state->foo(), "'\n";
0 голосов
/ 27 мая 2016

Немного опоздал на вечеринку, но я нашел, что это работает, если ты не хочешь все предопределить.

use warnings;
use strict;

use AppConfig ':argcount';

my $config = AppConfig->new( {
    CREATE => 1,
    GLOBAL => { ARGCOUNT => ARGCOUNT_ONE },
  } );
$config->file('sample.cfg');

print $config->foo();
# or
print $config->get('foo');
...