eof ()
eof
ungetcs
it, so it is not very useful in an interactive context.) Do not read from a terminal file (or call
eof on it) after end-of-file is reached. Filetypes such as terminals may lose
the end-of-file condition if you do.
An eof without an argument uses the last file read as argument. Empty parentheses
() may be used to indicate the pseudo file formed of the files listed on
the command line, i.e., eof is reasonable to use inside a while
loop to detect the end of only the last file. Use eof or eof without the parentheses to test
EACH file in a while (<>) loop. Examples:
# reset line numbering on each input file while (<>) { print "$.\t$_"; close(ARGV) if (eof); # Not eof(). }
# insert dashes just before last line of last file while (<>) { if (eof()) { print "--------------\n"; close(ARGV); # close or break; is needed if we # are reading from the terminal } print; }
Practical hint: you almost never need to use eof in Perl, because the input operators return undef when they run out of data.