For Programmers: Free Programming Magazines  


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







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com