Perl AppConfig::正在检索值的文件
我正在尝试使用来处理配置文件。但是,我总是从对象中得到一个空值。代码如下:Perl AppConfig::正在检索值的文件,perl,configuration,app-config,Perl,Configuration,App Config,我正在尝试使用来处理配置文件。但是,我总是从对象中得到一个空值。代码如下: 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"; 这在samp
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
我做错了什么?提前感谢。解决方案是在变量定义中包含该设置。不确定如何从文件中动态执行此操作
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";
派对有点晚了,但我发现如果你不想预先定义一切的话,这是可行的
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');
我以前尝试过这种方法,但它显示了错误:
无法通过testAppConfig.pl第55行的包“AppConfig::File”找到对象方法“foo”。
还有其他想法吗?在这方面,您有更多的方法来检索变量,例如->get(“foo”)
。也许您需要执行$state->foo()
?变量可能保存在状态中,但在文件中进行分析。print ref$State->foo()
。在标量上下文中可能是1的数组。或者只是print$state->foo()
。不。。还是不担心。。我试过print ref$state->foo()代码>但它不打印任何内容。然后对于print$state->foo()
它打印一个1
。解释如下:变量是简单标志,不需要参数(ARGCOUNT=ARGCOUNT\u NONE),可以不带任何值指定。它们将被设置为值1,任何明确指定的值(除了“0”和“off”)都将被忽略代码>