use module;
require module.pm
これらの違いは何かというと
use:ソース中のどこに記述してようがプログラム実行開始時に読み込まれる。
require:実際に記述してあるルーチンを通ったときに読み込まれる。
という事で、これなら全て require でいけばいいかと思いますが mod_perl 環境で実行するときには use で記述した方が省メモリになります。
なので基本的にモジュール読み込みは全て【use module;】で記述します。
では、 require のように実際の実行時になってはじめてモジュールを読み込みたい場合はどうすればいいかというと、
eval "use module";
と記述すればOK。
参考:
http://iandeth.dyndns.org/mt/ian/archives/000592.html