mod_perl でも import は呼ばれる
mod_perl では,一度コンパイルされたモジュールはキャッシュされてそのまま使われます。
package ModuleA; print STDERR "ModuleA::RUN\n";
なる ModulaA があり,スクリプト側で,
use ModuleA;
としても,コンパイルされるとき一度だけ「RUN」とログに吐きますが,リロードしても(基本的には)「RUN」とは出てきません。
ところが,import というサブルーチン(perldoc -f import や perldoc -f use 参照)を定義すると,これは,use する度に呼ばれるんで,mod_perl 環境でもリクエストがあるたびに自動的に呼び出されます。
ただし,たとえば,ModuleB が use ModuleA; してて,ModuleC も use ModuleA; してるときに,メインのスクリプトで
use ModuleB; use ModuleC;
とすると2度呼び出されます。つまり,use されるところでは必ず呼び出されるわけです。
あたりまえといえばあたりまえなのですが変な実験でした。