• 締切済み

perlスクリプト

perlの勉強をしているものです。人様の作ったスクリプトを解析しています。以下のスクリプトについて質問があります。 while(chomp($in = <STDIN>)){ last if ($in eq "\cD"); print "$in"; } このスクリプトに出てきている、"\cD"の意味と、ifの前に出てきているlastの働きが分かりません。またこのスクリプトは全体としてどのような仕事をするのでしょうか?? 分かる方いらっしゃいましたら、ご教授いただけると幸いです。よろしくお願いします。

みんなの回答

  • SE-1
  • ベストアンサー率57% (26/45)
回答No.1

¥cD は Control-D のエスケープのようです。なぜそれがそこに入っているのかはスクリプトのほかの部分を見ないとわかりませんが。それから last は while ループを抜けだすために記述されています。 ですので、標準入力から入ってきた各行について、最後の改行を除いて、のこりの文字列が¥cD ならwhile ループを抜け、そうでなければその行を表示してループを繰り返す、というのが示された部分の意図するところだと思います。

fortunefeeling
質問者

お礼

回答ありがとうございました!参考になりました。

すると、全ての回答が全文表示されます。

関連するQ&A