У меня есть веб-приложение, которое я пишу в mod_perl 2. (Это пользовательский модуль-обработчик, а не сценарии реестра или perlrun.) Есть несколько параметров конфигурации, которые я хотел бы установить при инициализации сервера, предпочтительно из конфигурациифайл.Проблема в том, что я не нашел подходящего места для передачи имени файла для файла конфигурации моего приложения.
Сначала я попытался загрузить «./app.conf», но текущий каталог нерасположение модулей, поэтому оно непредсказуемо и подвержено ошибкам.Или я должен принять какой-то путь - относительный или абсолютный.Это негибко и может быть проблематично в случае изменения дистрибутива ОС.Я не хочу жестко кодировать путь (хотя что-то в / etc может быть приемлемым, если нет лучшего способа).
Я также пробовал PerlSetVar, но значение недоступно до времени запроса,Хотя это работает, это означает, что я потенциально читаю конфигурационный файл с диска, по крайней мере, один раз для дочернего (потока) init.Я предпочел бы загрузить на сервере init и иметь неизменный статический хеш, который является частью порожденной среды при создании дочернего элемента.
Я рассмотрел использование config.pl, но это означает, что у меня либо есть config.plс одной опцией, чтобы настроить, где найти файл app.conf, или я переместил сами опции в config.pl и потребовал, чтобы конечные пользователи уважали синтаксис Perl при настройке опций.Будущие пользователи будут внутренними администраторами, так что это не лишено смысла, но это сложнее, чем хотелось бы.
Так чего мне не хватает?Есть хорошие альтернативы?