- ベストアンサー
親cgiから子cgiをコールする方法
- パラメーターを与え、親cgiから子cgiをコールする方法について説明します。
- 親cgiはパラメータを子cgiに渡すだけで、子cgiは単純に結果を親cgiに返します。
- 親cgiと子cgiの関係を整理し、頻繁に変更される条件を子cgiだけで修正できるようにします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一番お手軽な方法は require を使う方法ではないでしょうか。 例:呼び出し元のCGIからファイル名とテキストを渡し、require で読み込まれるライブラリでabc.txtを生成し、その中身にtestと書き込むスクリプト ##### 呼び出し元(a.cgi) require "x.pl"; &makeFile("abc.txt","test"); ##### require で読み込まれるライブラリ(x.pl) sub makeFile { $file = $_[0]; $writeText = $_[1]; open(FH,">$file"); print FH $writeText; close(FH); } 1; なお、requireで読み込むライブラリは、最終行で真を返す必要があるので 1 を記述します。
その他の回答 (1)
- hok212
- ベストアンサー率66% (100/150)
> infoseekライト(無料のレンタルサーバー)に登録したところ、 > 500番のエラーが出ました。 infoseekのサーバは使ったことがないのですが、require はごくごく一般的な手法ですので、Perlが使えるサーバであれば普通ではありえないことです。 呼び出し元のCGIから require している行、及びサブルーチンを呼び出している行をコメントアウトするとどうなりますか? これでエラーが出ないなら、require で読み込まれるファイルのほうに問題があります。 実は単純ミスで、FTP時にバイナリで転送しているのかもしれません。
お礼
またまた有り難うございました。 問題なく動くはず、 との勇気づけられるお言葉を頂いたので全てを見直しました。 というより、テストロジックだけを作ってやっていたので、 本番さながらに今回教えていただいた部分を加味、 本番で動かしてみました。 結果は全く問題なく、動きました。 テストのために分からないながら端折ったりした部分が影響していたのかなと思っています。 ということで、 これから同じロジックをコピーして全ての親に反映する力作業だけになり、先が見えました。 大変お世話になり有り難うございました。
お礼
早速有り難うございました。 教えていただいたモノに少しばかり私のロジックを加え、 やってみました。 私のローカル(perl環境)では思った通りの結果が出て出来ました。 喜んで、使わせて貰っているinfoseekライト(無料のレンタルサーバー)に登録したところ、 500番のエラーが出ました。 このサーバーではこのやり方を認めていないのでしょうか。 もしそうだと諦めないといけないのですね。 宜しくお願いします。