この記事は、2007 年 1 月 27 日に書いた while (defined($line = )) と while ($line = ) の関連記事です。 入力演算子を使って行を読む場合には、こうではなく: while ($line = <FILE>) { # do something }こう書かなきゃならないものだと思っていた: while (defined($line = <FILE>)) { # do something } なぜかというと、読み込んでくるファイルの一番最後の行に、改行文字で終わっていない "0" という一文字が含まれている可能性があって、それを取りこぼしたくないから。 Perl では、"" と "0" と 0 (それぞれ、空文字、文字列のゼロ、数値のゼロ) は、ブール値コンテキストで「偽」とみなされてしまうので、最後の最後に改行文字のついていない "0" (文字