我正在尝试在perl中使用配置文件
Config::Simple
#!/usr/bin/perl
use Config::Simple;
use Data::Dumper;
use Data::Dump qw(dump);
#$cfg = new Config::Simple('new.conf');
$cfg = new Config::Simple(syntax => 'ini');
$cfg->param("Dialer Onboard.user", "user1");
$cfg->param("Dialer Onboard.pass", "pass1");
$cfg->param("Dialer External.user", "user2");
$cfg->param("Dialer External.pass", "pass2");
$cfg->write("new.conf");
$cfg->read('new.conf');
$user = $cfg->param("Dialer Onboard.user");
print "----" . "$user";
new.conf
文件将是
[Dialer External]
pass=pass2
user=user2
[Dialer Onboard]
pass=pass1
user=user1
对于部分或块信息,我使用的功能get_block()
就像这样
my $config = Config::Simple->new("new.conf")->get_block("Dialer Onboard");
print Dumper $config;
这会给我这样的输出
$VAR1 = {
'pass' => 'pass1',
'user' => 'user1'
};
有没有办法获得所有块的唯一名称?
现在我只得到
的块数my $config = Config::Simple->new("new.conf")->get_block();
print Dumper $config;
输出为
$VAR1 = 2;
答案 0 :(得分:7)
您在标量上下文中使用get_block()
;这就是你获得积木数量的原因。在列表上下文中使用它来获取块的名称。
试试这个:
my @config = Config::Simple->new("new.conf")->get_block();
print Dumper \@config;
输出:
$VAR1 = [
'Dialer Onboard',
'Dialer External'
];