• ベストアンサー

<IN>; を単独で使う

1行飛ばして読み込みさせたくて、seek の代わりに <IN>; と書いてみたんだけど、それで成功した CGIもあれは、失敗したものもありました。 <IN>; と書く間違いですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.4

いわゆる「1行読み捨て」ならば、   <IN>; でOKです。 (「scalar(<IN>);」でもOKなのですが、タイプが面倒なので私は書きません。) ちなみに shift は引数に配列を期待するので、   shift(<IN>); だとエラーになるはずです。 そもそも、(概念的な)テキストデータ処理で seek は使いません。 seek は、フォーマットが分かっているデータや、固定長のレコードデータなどに用います。 <IN> では \n までを読み込みますが、seek が使われているということは、データの区切りに \n は使われていないのではないでしょうか。

A__
質問者

お礼

ありがとうございます。 <IN>; でOKなんですね。 他の部分で $_ を使っていたから、 $xx = <IN>; なら成功するのに <IN>; なら失敗していた ということが分かりました。

その他の回答 (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>); で良いのでは?

関連するQ&A