Home > Archive > PERL Modules > July 2006 > most elegant way to find an installed datafile directory
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
most elegant way to find an installed datafile directory
|
|
| alexxx.magni@gmail.com 2006-07-07, 7:56 am |
| I continue on an old topic, on which I received some help
(I cannot find anymore the link to the discussion, sorry):
>....
>I'm beginning to use MakeMaker and have some problems with it: I need
>to install some auxiliary data files, and I can't figure out how to tell that to MakeMaker.
> e.g. I'd like that my final install would include some data files under /etc/projectname/
> so: 1) where do I put them originally? (in lib/etc for example?)
> and 2) how do I tell MakeMaker to install them in /etc/projactname ?
then:
> I correct myself on a point: I just checked that if I put my datafiles
> in a directory like projectname/lib/datafiles/... they are all
> installed for good, in my computer under /usr/lib/perl5/site_perl/5.8.6/projectname/datafiles/...
> This compromise I could accept, but how do I access that install
> directory name from my program?
and Rob (Sisyphus) replied:
> The prefix to that directory will be contained in one of the %Config keys -
> I think it's $Config{sitelib}. That being the case, so long as you 'use
>Config;' , you can access the directory as
>$Config{sitelib}/projectname/datafiles/ .
now: I relocated my perl library from system-wide to local, with:
export PERL5LIB=$PERL5LIB:/home/x/lib/perl/lib/perl5/site_perl/
so now the datafiles that interest me are under
/home/x/lib/perl/lib/perl5/site_perl/5.8.8/projectname/...
unfortunately I see that the %Config hash does not hold this directory.
So: what is the most elegant way to find a datafile directory which has
been installed locally?
thanks!
Alessandro Magni
| |
| harryfmudd [AT] comcast [DOT] net 2006-07-07, 6:56 pm |
| alexxx.magni@gmail.com wrote:
> I continue on an old topic, on which I received some help
> (I cannot find anymore the link to the discussion, sorry):
>
>
>
> then:
>
>
>
>
> and Rob (Sisyphus) replied:
>
>
>
>
> now: I relocated my perl library from system-wide to local, with:
> export PERL5LIB=$PERL5LIB:/home/x/lib/perl/lib/perl5/site_perl/
>
> so now the datafiles that interest me are under
> /home/x/lib/perl/lib/perl5/site_perl/5.8.8/projectname/...
>
> unfortunately I see that the %Config hash does not hold this directory.
> So: what is the most elegant way to find a datafile directory which has
> been installed locally?
>
>
> thanks!
>
> Alessandro Magni
>
I do not know about elegance, but if you have a specific module in mind,
you can load it, and then look it up in %INC. I am thinking of something
similar to
use Foo::Bar;
print "Foo::Bar corresponds to $INC{'Foo/Bar.pm'}\n";
The only other thing I can think of offhand is to traverse @INC.
Tom Wyant
|
|
|
|
|