startup.pl で require?

use と require の話、まだ引っ張るのかよって感じですがもうちょっとだけ。del.icio.us で typester 氏からコメントがありました。

requireだけでも、startup.pl のような使い方すればいいよね?

んで、一瞬「そうか、startup.pl で全部 reuiqre すればいっしょなのか」と思ったんですがよく考えてみると、その場合 reuqire でロードされるのって結局 startup.pl に書いたファイルだけですよね。

この方法だと、XML::Atom みたいに中で色々使ってるモジュールとかは、その中の実装を考えて全部 require する必要が出てきます。ソースの require な部分を舐めて require するようなロジックを startup.pl に実装するってのも変な話だし。ということでやっぱり use だよなあと。

勘違いかも。

そういえば、Practical Mod-Perl に似たような話が書いてたような気がする。(こっちは use してりゃ ok ってわけでもないですよ、っていう話ですけど。) 確か CGI.pm と DBI の話だったと思います。例えば DBI だと、ドライバが実行時まで確定しないので単に use しただけだとそのコードを親子(プロセス)で共有できない、だから startup.pl の中で

use DBI;
DBI->install_driver("mysql");

とかすると共有するメモリ量が増えると。CGI.pm は

use CGI;
CGI->compile(':all');

するといいらしい。メモが出てきた。ちょっと自分メモから引用。

書籍では DBI.pm / CGI.pm にだけ言及していますが、実際にはこの手の初期化を行ってやるといいモジュールはいろいろあるそう。それぞれの pod に書いている場合もあるそうな。

Practical mod_perl、ちゃんと読むと結構パワーアップできそうなんですけどね、分厚い洋書なので腰が引ける。和訳キボン。

Practical Mod-Perl

Practical Mod-Perl

あ、ちなみにこの本ウェブで全部読めます。(CCだから和訳して公開してもいいぽだなあ...ぼそぼそ) HTML版、PDF版アリ。Shared Memory がどうたらこうたらというのはChapter 10. Improving Performance with Shared Memory and Proper Forkingにあります。