in reply to who am I?
I have a very closely related question - close enough to post here, I think:
How can a module determine the location of itself, independently of the CWD, and independently of the location of the script that is using it.
Eg. if the module is ~/lib/Ingenious.pm, and the script using it is ~/apps/Handy/Process.pl, and the CWD is ~/data/stuff/, then how could Ingenious.pm best determine that it's in ~/lib/ ?
After a bit of head scratching, I cobbled together a generic enough "solution":
This finds the location of the module either absolutely, or relative to the CWD, according to the content of @INC, which is sufficient for my purposes.foreach (@INC) { if (-f "$_/".__PACKAGE__.".pm") { $iAmHere = $_; last; } }
It feels like a hack, but hey - I wrote it before I found PerlMonks, so now seems like a good time to ask whether there's a better way of doing it. Any thoughts?
--
.sig : File not found.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: who am I?
by ikegami (Patriarch) on Sep 25, 2008 at 09:46 UTC | |
Re^2: who am I?
by moritz (Cardinal) on Sep 25, 2008 at 09:47 UTC | |
Re^2: who am I?
by tsee (Curate) on Sep 26, 2008 at 07:51 UTC |
In Section
Seekers of Perl Wisdom