Я пытаюсь изобразить наилучшую логику, чтобы определить, оставил ли пользователь моего сценария включенной опцию множественного SQL в конфигурационном файле, причина в том, что поддерживается только одна.используйте простую переменную, которая была установлена равной 0,1,2,3, а затем прочитана сценарием для запуска правильной подпрограммы.Затем я подумал, что если бы они могли сделать это, существовал ли раздел в файле конфигурации, это было возможно с помощью модуля, который я использую.Но проблема, с которой я столкнулся сейчас, заключается в том, что если у меня есть определение того, какое программное обеспечение SQL использовать на основе существования определенного раздела конфигурации, это не значит, что мне нужно иметь логику, которая говорит, существует ли раздел «этот» и раздел «этот»затем ошибка?Но тогда это будет означать, что я буду принимать во внимание все комбинации всех разделов, которые имеют отношение.Правильно?
Был ли лучший способ подойти к этому первым способом, которым я это сделал?или есть лучший способ?
Я включил образцы моего конфигурационного файла и незаконченную подпрограмму, в которую будет заключена логика. Я бы контролировал существование разделов, комментируя их в файле конфигурации.Кстати, я пишу на Perl и использую Config :: IniFiles для чтения и записи в INI-файл.
Любые идеи будут очень признательны.
sub sql_option {
if (config_file()->SectionExists('SQLite')) {
sqlite_setup();
} elsif (config_file()->SectionExists('MySQL')) {
mysql_setup();
} elsif (config_file()->SectionExists('PgSQL')) {
pgsql_setup();
} elsif (config_file()->SectionExists('MSSQL')) {
mssql_setup();
} else {
print color 'red';
print "No SQL server option defined!\n";
print color 'reset';
print "\n";
die "Script halted!\n";
}
}
И INI-файл:
[ESX]
host=esxi01.solignis.local
;port=
user=root
password=
[SQLite]
db=discovery.db
[MySQL]
host=sql01.solignis.local
;port=
user=root
password=
;[PgSQL]
;host=
;port=
;user=
;password=
;[MSSQL]
;host=
;port=
;user=
;password=