我必须编写许多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"};
有没有办法用更少的代码行初始化每个脚本中的变量?
答案 0 :(得分:0)
我制作了Config :: IniFiles的本地副本,因为我没有root权限 - Mohima Chaudhuri
使用例如metacpan.org/pod/local::lib,您可以安装没有root权限的任何模块。 - bolav