広告
広告
次に FILEHANDLE 上で読み込みを行なったときに、EOFが返されるときか、FILEHANDLE がオープンされていないと1 を返します。FILEHANDLE は値が実際のファイルハンドル名を示す式であっても構いません(この関数は実際に文字を読みungetc() を行なうので、対話型の場合には、それ程有用ではない)。引数を省略した eof は、最後に読み込みを行なったファイルの EOF 状態を返します。空の括弧 () は、コマンドラインのファイルリストで構成される、擬似ファイルを示すために用いられます。つまり eof() は、while (<>) ループの中で最終ファイルの最後を検出するために使えます。while (<>) ループの個々のファイルを調べるには、eof(ARGV) か括弧なしの eof を用います。ただし、Perl ではデータがなくなったときに入力演算子が未定義値を返してくれますので、eof が必要となることはほとんどありません。
#最後のファイルの最終行の前にダッシュを入れる while (<>) { if (eof()) { print "\"\n"; } print; }
#ファイルごとに行番号をリセットする while (<>) { print "$.\t$_"; if (eof) { close(ARGV); } }
広告