- ベストアンサー
<IN>; を単独で使う
1行飛ばして読み込みさせたくて、seek の代わりに <IN>; と書いてみたんだけど、それで成功した CGIもあれは、失敗したものもありました。 <IN>; と書く間違いですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いわゆる「1行読み捨て」ならば、 <IN>; でOKです。 (「scalar(<IN>);」でもOKなのですが、タイプが面倒なので私は書きません。) ちなみに shift は引数に配列を期待するので、 shift(<IN>); だとエラーになるはずです。 そもそも、(概念的な)テキストデータ処理で seek は使いません。 seek は、フォーマットが分かっているデータや、固定長のレコードデータなどに用います。 <IN> では \n までを読み込みますが、seek が使われているということは、データの区切りに \n は使われていないのではないでしょうか。
その他の回答 (3)
- aton
- ベストアンサー率47% (160/334)
回答No.3
単に, $dummy = <IN>; などとして,$dummyを使わなければいいのでは? #while (<IN>) #なんていうのは,意味的には #while (($_ = <IN>) ne '') #の省略形なんだけど…。
- yurarinco
- ベストアンサー率34% (20/58)
回答No.2
scalar(<IN>); かなぁと思います。
- yuizuian
- ベストアンサー率42% (103/245)
回答No.1
<IN>;はやったことがないので何とも…ですが、 一行読み飛ばすなら shift(<IN>); で良いのでは?
お礼
ありがとうございます。 <IN>; でOKなんですね。 他の部分で $_ を使っていたから、 $xx = <IN>; なら成功するのに <IN>; なら失敗していた ということが分かりました。