4

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

基本场景是:

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;
4

2 回答 2

2

这从来没有得到回答,所以最终我转而使用 PerlPostConfigHandler,它似乎可以接受。我只能假设这与 PerlChildInitiHandler 中发生的分叉有关,但很抱歉,我放弃了。希望这对将来的某人有所帮助。

于 2010-09-13T20:05:00.557 回答
0

一般来说,如果你想在 childinit 时加载一些东西,并在响应阶段访问它,你会把它塞进一个全局包中(比如 $My::variable = 'lols')。我从来没有尝试过像你在这里那样做。您是否尝试使用我们的而不是我的可能?

于 2010-09-14T22:39:51.520 回答