Почему мои общие переменные очищаются между PerlChildInitHandler и PerlResponseHandler в mod_perl? - PullRequest
4 голосов
/ 19 августа 2010

Я пытаюсь загрузить файл конфигурации в хэш во время моего 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;

Ответы [ 2 ]

2 голосов
/ 14 сентября 2010

На это никогда не было ответа, поэтому в конце концов я перешел к использованию PerlPostConfigHandler, который, казалось, работал приемлемо.Я могу только предположить, что в PerlChildInitiHandler что-то происходит с разветвлением, но, к сожалению, я сдался.Надеюсь, это поможет кому-то в будущем.

0 голосов
/ 15 сентября 2010

Как правило, если вы хотите загрузить что-то во время childinit и получить доступ к нему на этапе ответа, вы поместите это в глобальный пакет (например, $ My :: variable = 'lols'). Я никогда не пытался сделать это так, как ты здесь. Вы пытались использовать нашу вместо моего возможно?

...