我正在尝试使用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
我做错了什么?提前谢谢。
答案 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');