2015-12-13 89 views
1

我必須編寫一些Perl腳本,其中每個腳本測試一個不同的Unix應用程序命令。
我想把我的所有變量放在一個.ini文件中,每個部分都是一個獨特的命令。
樣品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

我不能使用來自CPAN任何外部模塊,它們在組織 –

+6

內限制使這些模塊內部或去尋找一個不同的組織,爲 – Marged

+0

@MohimaChaudhuri工作,如果你可以將文件寫入到磁盤,您可以使用模塊...模塊只是代碼。爲什麼人們得到這個掛斷有時候很難理解。 – TLP

回答

0

我做了配置:: IniFiles的本地副本,因爲我沒有root權限 - Mohima喬杜裏

與例如metacpan.org/pod/local::lib您可以安裝任何模塊沒有root權限。 –   bolav