perl 配置和块

perl configuration and blocks

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

您在标量上下文中使用 get_block();这就是为什么你得到块的数量。在列表上下文中使用它来获取块的名称。

试试这个:

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

输出:

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