=over =item eof FILEHANDLE =item eof () =item eof Returns 1 if the next read on FILEHANDLE will return end of file, or if FILEHANDLE is not open. FILEHANDLE may be an expression whose value gives the real filehandle. (Note that this function actually reads a character and then Cs it, so isn't very useful in an interactive context.) Do not read from a terminal file (or call C on it) after end-of-file is reached. Filetypes such as terminals may lose the end-of-file condition if you do. An C without an argument uses the last file read as argument. Using C with empty parentheses is very different. It indicates the pseudo file formed of the files listed on the command line, i.e., C is reasonable to use inside a CE)> loop to detect the end of only the last file. Use C or eof without the parentheses to test I file in a while (EE) loop. Examples: # reset line numbering on each input file while (<>) { next if /^\s*#/; # skip comments print "$.\t$_"; } continue { close ARGV if eof; # Not eof()! } # insert dashes just before last line of last file while (<>) { if (eof()) { # check for end of current file 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 C in Perl, because the input operators return false values when they run out of data, or if there was an error. =back