If you use/require with the path as Perrin suggested, these libs will
compile in separately.  One caveat, watch for clashing of exported symbols.

My personal preference is to call a config routine from a single package
that returns the desired info.

# file: foo/same_name.pl
use My::Configuration;
my(%conf) = Configuration("foo");

#file: bar/same_name.pl
use My::Configuration;
my(%conf) = Configuration("bar");

This way you're not attempting to recompile configuration data each time you
load the script (that kinda defeats the purpose of running modperl).  Your
My::Configuration package can load it's data from any number of sources, or
just have it hard coded in the package.  Note that there are a number of
variations to this, but in general, this makes the most sense.



Thanks,

Tim Tompkins
----------------------------------------------
Programmer
http://www.arttoday.com/
http://www.rebelartist.com/
----------------------------------------------
----- Original Message -----
From: "ryc" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 16, 2001 3:38 PM
Subject: Re: Problem with "use" getting the wrong file


> > I have two mod_perl programs on my site. One is in the directory "inr2",
> > and the other is in the directory "otherinr2".
> >
> > These mod_perl programs have exactly the same code. Both of them do:
> > use cfg;
> >
> > where cfg.pm is a file that's in both inr2 and otherinr2, but it's
> > different in these directories.
> >
> > But the code in "otherinr2" is getting the cfg.pm from "inr2" since they
> > have the same filename and relative paths. How can I make the "use"
> > command not act braindead about this? Is there a CPAN module that I can
> > import to overload the use command with something that takes the full
> > pathname into account perhaps?
>
> You can specify a full path to use/require.  Check man perlfunc for the
> details.  You can also specify a path relative to the current working
> directory if you don't like hard-coding full paths in your scripts.
> - Perrin

I have learned recently(and the original poster as well) that despite two
files having different file names, and doing a "require
/full/path/to/file.pl", modperl will only compile the file once because they
both have the same package name.

I have yet to find a solution to the problem that I like... I have a file
that contains the database information (username, password, db name, connect
functions, ect) and for a while I couldnt figure out why two scripts using
two seperate files for database info would connect to the wrong database
heh.

ryan




Reply via email to