miyu
[E-Mail]
2000/02/19(土) 18:08:24
CGIより複数のHTMLファイルを書き出し,その実行結果(「エラー」や「正常終了」などのメッセージ)をブラウザに
出力するスクリプト(perl)を書いています.
ローカル(Solaris1.2,apache1.3.11)でテストをし動作を確認してから,いざ
プロバイダのサーバ(FreeBSD,apache1.3.4)にのせようとしたら Internal Server Error
で実行できませんでした.
調べてみると,ファイル自体は正常に書き出されています.
また出力するファイルの数を1つにすると,エラーも出ず正常にブラウザには設定した
メッセージが出力されます.
ということで,select関数まわりの記述が怪しいと睨んでいるのですが…
使い方を誤っているでしょうか?
プログラムはこのような感じで書いています.実際は
print文は他の処理と使い廻しているため書き出す内容にわけて
サブルーチン化してあります.print文の中では特に出力先を
指定していません.
一つのファイルを書き終えたら閉じて別のファイルを
開くというようにして,
同時に複数のファイルに書き出すことがないので,
同じファイルハンドラを使用しています.
$a = 出力するファイルの数;
for( $i=0; $i<=$a; $i++ ){
$html_file = "hoge$i.html";
open( HTMLFILE, "> $html_file" );
select(HTMLFILE);
print "<HTML>\n<BODY>\n";
ファイルに出力する文字列の処理いろいろ
print "</BODY>\n</HTML>\n";
close(HTMLFILE);
}
select(STDOUT); # ブラウザ出力分
print "Content-type: text/html\n\n";
: