アプリ版:「スタンプのみでお礼する」機能のリリースについて

perlでの話なのですがrequireを使って、
例えば、以下のようにした場合、
同じファイルを何回もコンパイルすることになるのでしょうか。
どなたか教えていただけないでしょうか。

@xx=(1,2,3);

for(@xx){
require "xx.pl";
}

どうしてもCGIがサーバーに与える負荷を軽減したいので、
無駄なコンパイルならば、一回だけrequireするようにしたいのです。

A 回答 (3件)

特に、意図があって見つけたページではありませんが


「perl require」で検索したらすぐに見付かりました
http://cocohome.hp.infoseek.co.jp/perl_ref/requi …
というのでどうでしょう。

実験してみるのが良いと思うので
呼び出される側のファイルで、読み込まれたときに
何か文字列をファイルか標準出力に出してみたらどうでしょう。
    • good
    • 0
この回答へのお礼

requireについて書かれたページを見つけてくださり、
ありがとうございます。
後で、実験してみようと思います。

お礼日時:2008/02/22 01:43

ドキュメント見れば書いてますよ。



perldoc -f require

Otherwise, "require" demands that a library file be included if
it hasn't already been included. The file is included via the
do-FILE mechanism, which is essentially just a variety of "eval"
with the caveat that lexical variables in the invoking script
will be invisible to the included code. Has semantics similar to
the following subroutine:


Note that the file will not be included twice under the same
specified name.

perldoc.jp あたりに日本語訳されてるものもあるはずです。
ファイル名は perlfuc です。
    • good
    • 0
この回答へのお礼

わざわざ、ドキュメントをコピーして見せてくださり、
ありがとうございます。
私は、perl素人なので、そういうところを見るなんて思いつきませんでした。
これからは、もう少しちゃんと調べてから、質問するようにします。

お礼日時:2008/02/22 01:47

コンパイルではない気も。


まぁ、それはさておいて、ループないのファイル読み込みは、あまりお行儀がよくないですよ。
一度ファイルを読み込んで、その中にある関数を読み込んだ方が、処理も軽いかと。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。
ですが、どうしても、ループ中に読み込まないといけないところ
(ループ開始前にはライブラリ内のサブルーチンが必要かどうか判断できない、
というより、調べようと思えばできるけど、無駄な処理が増えるだけ)があるので、
なんとかしたかったのです。

お礼日時:2008/02/22 01:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!