0

是否可以将值分配给 中的全局变量handler.pl

我需要为 in 中的全局变量赋值handler.pl,并从 Mason 组件中获取该值。

我试过这样:

httpd.conf

...
PerlRequire handler.pl
...

处理程序.pl

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

东西.mas

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

但它不起作用,它不会返回<h1>test</h1>,但就像<h1></h1>未定义一样$x。我怎样才能让它工作?

4

1 回答 1

1

是的,但你必须设置

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_

于 2012-03-09T15:07:59.977 回答