Awesome.  This tip cleared the problem right up; thanks for explaining it!

----- Original Message ----- 
From: "Steve Grazzini" <[EMAIL PROTECTED]>
To: "TeamSolCO" <[EMAIL PROTECTED]>
Cc: "Perl Beginners List" <[EMAIL PROTECTED]>
Sent: Friday, January 30, 2004 3:26 PM
Subject: Re: Can't use global FILEHANDLEs?


: TeamSolCO wrote:
: > Now then, I've opened a can of worms by adding "use strict" and
:  > "use warnings" to the source.  Keep in mind that this application
: > was running JUST FINE before doing this.  I'm only trying to 'modernize'
: > this old code.  Having started with a couple screen-fulls of resulting
:  > errors, I'm down to just one:  "Can't use an undefined value as a symbol
: > reference..."  The partucular block that causes this error is:
: > 
: > sub close_fifo {
: >  close($hndFIFO);
: > }
: > 
: > It's related open sub is:
: > 
: > sub open_fifo {
: >  close_fifo();
: 
: When you call this the first time, you'll end up doing
: 
:    close($hndFIFO = undef);
: 
: And strict won't let you dereference "undef" as a filehandle -- for
: historical reasons, filehandles and glob/symbol references are more
: equivalent than they should be, and that's why your error message is
: complaining about a "symbol reference".
: 
: Now, if you're sure you need to close $hndFIFO before re-opening it,
: you could do:
: 
:    sub open_fifo {
:      close($hndFIFO) if defined $hndFIFO;
: 
: But it will get closed automatically when you re-open $hndFIFO, and
: I think that should be sufficient.
: 
: -- 
: Steve
: 
: 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to