读取INI文件以初始化变量

时间:2015-12-13 10:35:37

标签: perl ini

我必须编写许多Perl脚本,其中每个脚本都测试一个不同的Unix应用程序命令 我想将所有变量放在一个.ini文件中,每个部分都是一个不同的命令 INI文件样本:

[Sec2]
item1=xx
item3=yy
[usermgr]
domain=/vol.nas/rpas_qc/mohima/Auto/testDomain/PlatformConfigGD
msgs=user .* was added,usermgr completed successfully
group=Admin
grouplbl=Admin

我的iniRead功能:

sub iniRead
 {
  my $ini = $_[0];
  my $conf;
 my $section;
  open (INI, "$ini") || die "Can't open $ini: $!\n";
    while (<INI>) {
        chomp;
        if (/^\s*\[\s*(.+?)\s*\]\s*$/) {
          $section = $1;
        }

        if ( /^\s*([^=]+?)\s*=\s*(.*?)\s*$/ ) {
          $conf->{$section}->{$1} = $2;
        }
    }
  close (INI);
  return $conf;
}

在我的脚本中,我添加了如下所示的行来初始化变量:

my $conf = iniRead("/vol.nas/rpas_qc/mohima/test/test.ini");
my $domain= $conf->{"dimensionMgr"}->{"domain"};
my $dim = $conf->{"dimensionMgr"}->{"dim"};

有没有办法用更少的代码行初始化每个脚本中的变量?

1 个答案:

答案 0 :(得分:0)

我制作了Config :: IniFiles的本地副本,因为我没有root权限 - Mohima Chaudhuri

使用例如metacpan.org/pod/local::lib,您可以安装没有root权限的任何模块。                      - bolav