in reply to Re: Re: Don't close filehandles (was: To Kill a Meme: while(defined($line = <>)) )
in thread To Kill a Meme: while(defined($line = <>))

I almost always check the return value of close on handles that I have open for writing. There's usually not much you can do to recover, but I like my programs to die screaming instead of silently going down. Perhaps the most common cause of a close failure is when the filesystem is full. If that happens, I want to know it right away.

I certainly wouldn't autoclose filehandles that I have open for writing, because I want to inspect the return value of close. And save from writing some XS code, I don't think you detect a close failure if your handle autocloses. Perhaps setting $! to 0 just before leaving the scope, and inspecting $! right afterwards might work, but other variables can go out of scope, causing $! to be set.

Abigail

  • Comment on Re: Don't close filehandles (was: To Kill a Meme: while(defined($line = <>)) )