entropy has asked for the wisdom of the Perl Monks concerning the following question:

When reading from the keyboard or a pipe, the select command can be used to tell when new data is available. On an ordinary file, however, select seems to always say the file is ready for reading, even when I am at the EOF. Of course, I can just keep trying to sleep and read over and over until there is something there... but I would rather have my program block until data is available, and then read it immediately.

Originally posted as a Categorized Question.