.pm文件:
package fo_condition_editor;
use utf8;
use diagnostics -trace;
use strict;
use warnings FATAL => 'all';
{...}
use Encode;
my $msg = {};
return 1;
{..}
sub ..() {
$msg->{saved} = 1;
我用这个pm来显示弹出窗口。提交表单时,弹出窗口会刷新。
在我的本地服务器中一切正常,但在其他服务器中我遇到了变量$ msg的问题。 $ msg在打印过程中为空,但是当我再次以$ msg提交时,旧的东西。
我认为apache配置存在问题。
答案 0 :(得分:0)
问讯 - 如果我得到正确的 - 是代码
my $msg = {};
仅在首次需要/使用此包时执行。之后(在当前的mod_perl实例中)不再执行此操作,并且$ msg保留它对下一个请求的任何值。
有很多方法可以解决这个问题。我使用的一种模式是为我使用的每个“包/模块 - 实体”定义“拆除/重置”方法。在包本身中,我将此方法的引用推送到全局变量。在mod_perl调用的“core-Handler”中,我有一个拆卸/重置方法,它迭代注册的处理程序并调用它们来重置数据。
HTH 乔治