Perl /mason:在handler.pl中给全局变量赋值



是否可以为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_

相关内容

  • 没有找到相关文章

最新更新