To start, let me say this:
1) I have both "Learning Perl 3rd Ed" and "Programming Perl 3rd Ed"
2) I have read "Learning Perl 3rd Ed", and I use "Programming Perl 3rd Ed" as 
reference.
3) I have searched with Google for several key words related to my problem, but the 
mass of junk I get back is not
helpful.
4) The application source is roughly 450 lines long, and the FAQ for this list asks 
users not to mass-post such things,
otherwise I'd post it here en-masse for help.

And, most importantly:
A)  I didn't write the application I'm working on, I extended it (to a great deal) 
using the same programming style as
the original author (and other programmers before me), except that I've been "cleaning 
up" the old code a great deal.
B)  I understand this application is quite old, probably written in Perl 4 days, and 
shows no OO influence (was
originally written as a down-and-dirty utility script).

That said, please do not assume that I am incompetent; I'm just frustrated.  I've been 
programming for more than 20
years, just not with Perl (no, I'm not a VB "programmer" -- my experience is 
primarilly C).

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();

 # Make sure the $hndFIFO file is a pipe.
 unless (-p $path_fifo) {
  unlink($path_fifo);
  system("mkfifo $path_fifo") or die("Can't mkfifo $path_fifo: $!");
  chmod(0600, $path_fifo);
 }

 # Open the $hndFIFO stream.
 open($hndFIFO, "< $path_fifo") or die("Can't open $path_fifo: $!");
}

and, at the top of this source, I have declared $hndFIFO (along with the log file 
handle) using our as in:

our ($hndLOG, $hndFIFO);


Before applying the aforementioned pragmas, the FIFO handle was simply, FIFO.  There 
was no "our" declaration, at all,
and the variable/handle name was not prefixed with the scalar $ indicator.  Everything 
worked at that time...  Clearly,
I'm trying to delcare the FIFO (and log file) file handles as global to the 
application so that I can access them freely
in several other subs.  What do I need to do to satisfy the strict pragma, while 
accomplishing my goal?

Thanks!!

- William Kimball
  "Programming is an art-form that fights back!"



-- 
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