Warum werden meine freigegebenen Variablen zwischen PerlChildInitHandler und PerlResponseHandler in mod_perl ausgeräumt?

StackOverflow https://stackoverflow.com/questions/3519606

Frage

Ich versuche, eine Konfigurationsdatei in einen Hash während meiner PerlChildInitHandler zu laden und dann Zugriff auf die Werte aus PerlResponseHandler. Doch obwohl die Prozessnummer die gleiche ist, wie es scheint, dass die Variablen während des child_init() Anruf wieder zurück auf die Standardwerte geändert werden, wenn handler() aufgerufen wird.

Das Basisszenario ist:

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;
War es hilfreich?

Lösung

Dies wurde nie beantwortet, so schließlich zog ich auf die PerlPostConfigHandler verwenden, die in akzeptabler Weise schien zu funktionieren. Ich kann nur es ist etwas, über das Forking übernehmen, die in dem PerlChildInitiHandler geschieht aber, sorry zu sagen, habe ich aufgegeben. Hoffe, dass dies jemand in der Zukunft hilft.

Andere Tipps

Im Allgemeinen, wenn Sie Last etwas zu childinit Zeit wollen, und greifen Sie in der Antwortphase, können Sie es in ein Paket global (wie $ My :: Variable = ‚lols‘) stopfen würde. Ich habe nie versucht, es so, wie Sie sind hier zu tun. Haben Sie versucht, unser statt meiner vielleicht mit?.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top