I have a few functions that are common to many different
perl applications. All of these functions live in one
file.
I have many perl programs that run from cron that make
use of these functions. So, in each of these programs
I use require to gain access to these functions.
Example:
<<<<< doit.pl >>>>>
#!/usr/bin/perl
require '/usr/local/myperllib.pl';
@array = ("one\n", "two\n", "three\n");
## calling WriteFile from myperllib.pl
WriteFile('/path/filename', @array);
exit;
<<<<< doit.pl >>>>>
<<<<< doit1.pl >>>>>
require '/usr/local/myperllib.pl';
@array = ("four\n", "five\n", "six\n");
## calling WriteFile from myperllib.pl
WriteFile('/path/filename1', @array);
exit;
imagine many of these doit.pl scripts ( doit1.pl, doit2.pl ... ), all using
require, all calling WriteFile, all running at the same time.
What happens is sometimes, what should end up in one file, ends up in
another file. I would expect:
$ cat /path/filename
one
two
three
what I sometimes get is the contents of /path/filename1 ending up in
/path/filename
$ cat /path/filename
four
five
six
How would I code my library correctly to avoid this type of namespace
pollution?
thanks
rodney