Мне нужно написать несколько сценариев 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"};
Есть ли способ инициализировать переменные внутри каждого сценария с меньшим количеством строк кода?