小编abh*_*ier的帖子

perl配置和块

我试图在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 configuration

2
推荐指数
1
解决办法
167
查看次数

将哈希传递给子程序

嗨,我是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)

谁能简单解释一下发生了什么?如果我的理解是错误的,请纠正我.

perl hash subroutine

1
推荐指数
1
解决办法
192
查看次数

如何从Perl中的数组中删除元素?

我正在使用配置文件 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)

perl

1
推荐指数
1
解决办法
140
查看次数

标签 统计

perl ×3

configuration ×1

hash ×1

subroutine ×1