abh*_*ier 2 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";
Run Code Online (Sandbox Code Playgroud)
而new.conf文件将是
[Dialer External]
pass=pass2
user=user2
[Dialer Onboard]
pass=pass1
user=user1
Run Code Online (Sandbox Code Playgroud)
对于部分或块的信息,我使用的功能get_block()是这样
my $config = Config::Simple->new("new.conf")->get_block("Dialer Onboard");
print Dumper $config;
Run Code Online (Sandbox Code Playgroud)
这将给我这样的输出
$VAR1 = {
'pass' => 'pass1',
'user' => 'user1'
};
Run Code Online (Sandbox Code Playgroud)
有没有办法获得所有块的名称?
现在我只获得了块的数量
my $config = Config::Simple->new("new.conf")->get_block();
print Dumper $config;
Run Code Online (Sandbox Code Playgroud)
输出将是
$VAR1 = 2;
Run Code Online (Sandbox Code Playgroud)
您正在使用get_block()标量上下文; 这就是你得到块数的原因.在列表上下文中使用它来获取块的名称.
试试这个:
my @config = Config::Simple->new("new.conf")->get_block();
print Dumper \@config;
Run Code Online (Sandbox Code Playgroud)
输出:
$VAR1 = [
'Dialer Onboard',
'Dialer External'
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |