AppConfig ::文件检索值

时间:2011-07-18 02:15:44

标签: perl configuration app-config

我正在尝试使用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 个答案:

答案 0 :(得分:2)

解决方案是在变量定义中包含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";

答案 1 :(得分:0)

派对有点晚了,但如果你不想预定义一切,我发现这个有用。

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');