为什么我的共享变量在mod_perl中的PerlChildInitHandler和PerlResponseHandler之间被清除?

我试图在PerlChildInitHandler期间将配置文件加载到哈希中,然后从PerlResponseHandler访问值.但是,即使进程号相同,似乎在调用handler()时,child_init()调用期间更改的变量也会恢复为默认值.

基本情景是:

package StartupLog;

# the variable I'm testing
my $sticky = 0;

sub child_init {
    $sticky = 1;
    return 0;
}

sub handler {
    warn __PACKAGE__ . " sticky = $sticky\n";    ### always says "0" but should say "1"
    return 0;
}
1;

最佳答案 这从未得到回答,所以最终我继续使用PerlPostConfigHandler,它似乎可以接受.我只能假设这是关于在PerlChildInitiHandler中发生的分叉的事情,但是,遗憾地说,我放弃了.希望这可以帮助将来的某个人.

点赞