perl / mason: присвоение значения глобальной переменной в handler.pl - PullRequest
0 голосов
/ 06 ноября 2011

Можно ли присвоить значение глобальной переменной в handler.pl?

Мне нужно присвоить значение глобальной переменной в handler.pl и получить значение из компонента Mason.

Я пробовал так:

httpd.conf

...
PerlRequire handler.pl
...

handler.pl

...
our $x = 'test';
...

что-то .mas

...
<h1><% $x %></h1>
...

но оно не работает, оно не возвращает <h1>test</h1>, а просто <h1></h1>, поскольку $x не определено.Как я могу заставить это работать?

1 Ответ

1 голос
/ 09 марта 2012

Да, но вам придется установить

PerlSetVar MasonAllowGlobals $x 

в httpd.conf или в handler.pl включают

allow_globals => [ '$x' ]

в вашем определении обработчика apache или объявите его в пакете HTML :: Mason :: Commands, в котором работают компоненты:

package HTML::Mason::Commands;
use vars '$x';

Этот последний вариант также позволяет сделать другие модули Perl доступными во всех компонентах:

package HTML::Mason::Commands;
use Data::Dumper;
use URI;
...

См. http://www.masonhq.com/?FAQ:Components#h-can_i_use_globals_in_components_

...