В httpd.conf у меня есть:
<Perl>
$MyPackage::foo = { ... };
</Perl>
Согласно документации, это должно, поскольку оно квалифицировано, сохраняться в моих perl-скриптах, которые запускаются с обработчиком modperl. И иногда они делают. Но тогда все, что мне нужно сделать, это прикоснуться к MyPackage.pm, и внезапно $ MyPackage :: foo теперь является undef. Перезапустите веб-сервер, и он снова заработает.
У кого-нибудь есть конец моим слезам?
Мое лучшее предположение заключается в том, что блок запускается только один раз, когда файл .conf анализируется, а затем новый поток получает перезагруженный файл. Но почему он не запускается один раз за поток? Есть ли что-то, что я могу использовать, кроме $ ENV и пользовательских директив, которые загружаются ровно один раз на сервер, а затем копируются во все интерпретаторы? (Возможно, в конце я использую неправильную терминологию, но вы поняли.)