[sf-perl] Bad file number

Quinn Weaver quinn at fairpath.com
Fri Jun 22 07:46:16 PDT 2007


On Thu, Jun 21, 2007 at 09:45:45PM -0700, Steve Fink wrote:
> On 6/21/07, Quinn Weaver <quinn at fairpath.com> wrote:
> > On Thu, Jun 21, 2007 at 02:30:40PM -0700, Loo, Peter # PHX wrote:
> > > I have checked the logic and it appears that there is a
> > > corresponding close() for every open().  I don't know why Perl is
> > > warning me with this error.
> >
> > Just "checking the logic" by looking at your code doesn't cut it.
> > You need to test empirically whether your code is doing what you think it is.
> >
> > Try putting warn "closed file MYFILE successfully" after your close
> > statements... just to verify that what you think is happening is
> > actually happening.
> >
> > Make a habit of testing your assumptions this way.  It is the royal
> > road to figuring out bugs.  Debugging is a matter of practice, not theory--
> > because if the code were working the way that you think in theory
> > it should be, you wouldn't have a bug!
> 
> Good general advice, but I'm not sure how well it applies in this
> situation. How many ways can close() fail

Actually, I agree.  I think that placing warn statements after close
(warn "just closed file $MY_PATH") will be more useful than checking
the return code--because, as you pointed out, the most likely problem
is that the close code is just failing to get called, due to bad logic.

-- 
Quinn Weaver, independent contractor  |  President, San Francisco Perl Mongers
http://fairpath.com/quinn/resume/     |  http://sf.pm.org/
510-520-5217


More information about the SanFrancisco-pm mailing list