Я хочу, чтобы иметь возможность определять глобальную переменную в моем приложении Catalyst, чтобы я мог получить доступ к ней на любом контроллере, в котором я находился. Целью этого является то, что я не повторяя значений вокруг моего приложения, которые по большей части никогда не меняются. В настоящее время я определяю переменные в my_app.pm
так:variable application-wide variable
our $GLOBAL_VAR = 'value';
, а затем в моих контроллеров, я пытаюсь получить доступ к переменной как я бы подпрограммой:
my_app::$GLOBAL_VAR
Однако, это не работает. Кто-нибудь знает лучший способ сделать это или лучший способ добиться этого в Catalyst? Благодаря!
Адрес эл. Почты: anks для вашего предложения, хотя на это уже был дан ответ.«По большей части никогда не изменяю», я имел в виду, что разработчик время от времени будет менять его, плохой выбор формулировок с моей стороны :) Считаете ли вы, что использование '__PACKAGE __-> config' лучше, чем просто объявление их как регулярные переменные, или это просто личное предпочтение? Кажется, это больше Catalyst-y :) – srchulo
Я всегда объявляю эти «статические» переменные, используя '__PACKAGE __-> config'. В частности, если переменная, о которой идет речь, является настройкой конфигурации вашего приложения! Это, вероятно, личное предпочтение, но использование globals perl всегда * чувствует * как взломать меня и противоречит общему принципу инкапсуляции. – RET