入力セパレータ($/)がうまくいかない場合の代替案は?
[上に]
[前に]
[次に]
(よ)
[E-Mail]
1999/10/08(金) 13:52:27
Perlの質問です。
あらかじめテキストで書いたデータファイル(日本語含む、s-jisのファイル)があります。
これは1レコード複数項目で、1行では記述できないため、なにかしらのセパレータで
区切ってあります。
このファイルを読み込んで、レコード単位に処理しようと思うのですが、1レコードを1行として
処理したいがために、レコードの区切りを"----------"としました。
入力セパレータを変更して読み込めばいいかと思い、
if (!open(DF,"$file")) { &error('File not found.'); } #&errorはエラー処理のsubです
$/ = "----------"; #データの区切りを変更
@lines = <DF>;
close(DF);
$/ = "\n"; #元に戻しておく
としてみました。ローカル環境にhttpdとacrive perl(5)を入れて確認した時点では
問題なく動作したのですが、いざサーバーで動かしてみると、エラーが出ました。(500)
調べていくうちに、上記「$/」関係を削除したらエラーが出なくなったのです。
ちなみにサーバーもPerl5です。何が問題なんでしょうか?
$/を諦めたとして、別によい手段はありますでしょうか。
(よ)
1999/10/08(金) 17:49:09
[[解決]]
自己解決です。
実は単なるポカミスによる早とちりだったようです(^^;
#なんともお恥ずかしい限りです。
ちなみにオチはというと、
print "Content-type: text/html\n\n";
が抜けていただけでした(^^;
上でなんでうまくいったかというと、何も表示させないとうまくいくのかすらわからないので
ついでにエラー表示ルーチンを動かして実験したんですね。ありがちな切り分けミスでした。
お騒がせしました m(__)m
[上に]
[前に]
[次に]