我试图在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 = …Run Code Online (Sandbox Code Playgroud) 嗨,我是perl编程新手.我无法获得此代码段.
#!/usr/bin/perl
# Function definition
sub PrintHash{
my (%hash) = @_;
foreach my $key ( keys %hash ){
my $value = $hash{$key};
print "$key : $value\n";
}
}
%hash = ('name' => 'Tom', 'age' => 19);
# Function call with hash parameter
PrintHash(%hash);
Run Code Online (Sandbox Code Playgroud)
此代码的输出将是
姓名:汤姆年龄:19岁
我理解了如何解析密钥,但我无法理解这些值如何被解析.当我尝试理解程序的流程时,这一行负责解析值.
my $value = $hash{$key};
Run Code Online (Sandbox Code Playgroud)
谁能简单解释一下发生了什么?如果我的理解是错误的,请纠正我.
我正在使用配置文件 Config::Simple
配置文件即new.conf
[Dialer External]
pass=pass2
user=user2
[Dialer Onboard]
pass=pass1
user=user1
[Dialer Onboard1]
pass=pass1
user=user1
[Dialer Onboard2]
pass=pass1
user=user1
Run Code Online (Sandbox Code Playgroud)
我正在阅读配置文件,这是我的代码
#!/usr/bin/perl
use Config::Simple;
use Data::Dumper;
$cfg = new Config::Simple(syntax => 'ini');
$cfg->read('new.conf');
$cfg = Config::Simple->import_from('new.conf', \%Config);
my @arr = ( keys %Config );
print "@arr";
Run Code Online (Sandbox Code Playgroud)
哈希引用,即%Config我将分配给数组@arr输出
Dialer Onboard1.pass
Dialer Onboard.pass
Dialer Onboard.user
Dialer Onboard2.pass
Dialer Onboard2.user
Dialer External.user
Dialer External.pass
Dialer Onboard1.user
Run Code Online (Sandbox Code Playgroud)
直到这里是对的.现在我想删除一些元素并将其分配给应该是这样的新数组
Dialer Onboard1
Dialer Onboard
Dialer Onboard
Dialer Onboard2
Dialer Onboard2
Dialer External
Dialer …Run Code Online (Sandbox Code Playgroud)