Я устанавливаю веб-приложение Catalyst для развертывания и хотел бы удалить плагины -Debug
и StackTrace
Catalyst из моего app.pm
в производственной среде. Тем не менее, поскольку у меня есть среда тестирования, я бы хотел избежать «жесткого кодирования» этого. Вместо этого я хотел бы иметь переменную конфигурации, определяющую среду, и соответственно загружать модули. Весь исходный код находится в SVN, и было бы грязно, если бы я обновил репозиторий, а затем вручную изменил модули, которые я загружаю в app.pm.
В настоящее время приложение использует модуль configLoader
для чтения * 1007. * файл со всеми конфигами, который не является версионным и дает некоторый контроль над тем, как приложение работает в среде dev, test или prod;но они читаются только после запуска приложения (следовательно, после загрузки модулей).
Вот упрощение app.pm
:
package app;
use strict;
use warnings;
use Hash::Merge ();
use Sys::Hostname;
use Catalyst::Runtime '5.80';
use Catalyst qw/
-Debug
StackTrace
ConfigLoader
SomeOtherModule
AndYetAnotherOne
/;
__PACKAGE__->config(
# Some local config stuff
);
# Start the application
__PACKAGE__->setup();
Есть лиспособ сделать это без необходимости использовать команду Unix, чтобы выяснить, на каком хосте запущено приложение?