入力セパレータ($/)がうまくいかない場合の代替案は?

[上に] [前に] [次に]
(よ) [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

[上に] [前に] [次に]