関数順 インデックス
目的別 インデックス

構文
 
 eof ファイル・ハンドル
 eof()
 eof

返り値
 
 ファイルの終わりまで読み込んだ場合に真

説明

  • ファイル・ハンドルの終わりまで読み込んだかどうかを返します。
  • ファイル・ハンドルがオープンされていない場合は真を返します。
  • ファイル・ハンドルを省略すると、最後に読んだファイル・ハンドルをチェックします。
  • eof()とeofでは<>からデータを読み込む場合の動作に違いがあります。空の括弧を付けたeof()は,コマンドライン・オプションで指定されたファイルの最後のファイルを最後まで読んだかどうかをチェックします。括弧を付けないeofの場合は、コマンドラインオプションのそれぞれのファイルの最後かどうかをチェックします。

使用例

行番号を付けながらファイルdata.txtの中身を表示する
#!/usr/bin/perl
use strict;
use warnings;

my $filename = 'data.txt';
open my $fh, "<", $filename or die "$filename:$!";
while (not eof $fh) {
  my $line = <$fh>;
  printf "%4d:%s", $., $line;
}
close $fh;

行番号を付けながらファイルalarm.plの中身を表示する(eofを使用しない)
#!/usr/bin/perl
use strict;
use warnings;

my $filename = 'alarm.pl';
open my $fh, "<", $filename or die "$filename:$!";
while (my $line = <$fh>) {
  printf "%4d: %s", $., $line;
}
close $fh;
※eofを使わなくてもこのような書き方でファイルの終わりを判断できるので,eofを使う機会はあまりありません。