I guess you meant "once only" instead of start to finish. That's fair enough, but if a command is going to fail, perl might as well give me some information about it. When you try to read a filehandle that never even existed, you get an "unopened filehandle" error message. I don't see why you shouldn't get an error message about an "already read" or "expired", "inactive" filehandle or something to that effect instead of the command failing silently, which makes debugging a nightmare.