是否可以为handler.pl
中的全局变量赋值?
我需要为handler.pl
中的全局变量分配一个值,并从Mason组件获取该值。
我试过了:
httpd . conf
...
PerlRequire handler.pl
...
handler.pl
...
our $x = 'test';
...
something.mas
...
<h1><% $x %></h1>
...
,但它不工作,它不返回<h1>test</h1>
,但只是<h1></h1>
作为$x
是未定义的。我怎样才能让它工作?
可以,但是你必须设置
PerlSetVar MasonAllowGlobals $x
在httpd.conf或handler.pl中包含
allow_globals => [ '$x' ]
,或者在组件运行的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_