• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:STDINの挙動がよく分かりません)

STDINの挙動がよく分かりません

このQ&Aのポイント
  • STDINの挙動について詳しく教えてください。
  • STDINを使用してデータを読み込む方法を教えてください。
  • STDINを使ったプログラムをループさせる方法を教えてください。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

STDIN に限らず, ファイルハンドルに対する <> 演算子は (スカラーコンテキストでは) 「1行読み込む」という動作をします. 次に <> で読み込むことを考えると, 当然「次の行に進む」ことになっていないとおかしいですよね. 諦めて配列に保存してください.

makoji
質問者

お礼

ありがとうございます。 <STDIN>は配列にいれるようにします。 調べてみたところ、$=は「write関数でフォーマット出力時の現在のページ行数」で、ループが幾ら廻っても、データの行数が何行であっても、フォーマットが60行とあれば、$=の値は60です。 $-は「write関数でフォーマット出力時の現在のページの残行数」で、printでは値が動きませんがwriteしてみると動きました。 ありがとうございます。 **************************** #!/usr/bin/perl my ($all,$rest); format = rest: @<< $rest . open(IN,'stdin_main.txt'); while(<IN>) { $rest=$-; write; } close(IN); open(IN2,'stdin_main.txt'); while(<IN2>) { print $-."\n"; } close(IN2);

関連するQ&A