perl配置和块

时间:2015-07-16 14:04:50

标签: perl configuration

我正在尝试在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;

1 个答案:

答案 0 :(得分:7)

您在标量上下文中使用get_block();这就是你获得积木数量的原因。在列表上下文中使用它来获取块的名称。

试试这个:

my @config = Config::Simple->new("new.conf")->get_block();
print Dumper \@config;

输出:

$VAR1 = [
          'Dialer Onboard',
          'Dialer External'
        ];