Dans httpd.conf J'ai:Pourquoi ma variable de section <Perl> n'est-elle disponible que sous mod_perl?
<Perl>
$MyPackage::foo = { ... };
</Perl>
Selon les documents, cela devrait, car il est qualifié, persister à mes scripts Perl, qui sont exécutés avec le gestionnaire de modperl. Et parfois ils le font. Mais tout ce que j'ai à faire est de toucher MyPackage.pm, et tout d'un coup $ MyPackage :: foo est maintenant undef. Redémarrez le serveur Web, et cela fonctionne à nouveau.
Quelqu'un at-il une fin à mes larmes? Ma meilleure estimation est que le bloc ne s'exécute qu'une seule fois, lorsque le fichier .conf est analysé, puis un nouveau thread récupère le fichier rechargé. Mais pourquoi ne pas courir une fois par thread? N'y a-t-il pas quelque chose que je puisse utiliser en plus des $ ENV et des directives personnalisées qui sont chargées une seule fois par serveur, puis copiées sur tous les interprètes? (J'utilise probablement la mauvaise terminologie à la fin ici, mais vous avez l'idée.)