|Think about Loose Coupling|
Re: who am I?by wol (Hermit)
|on Sep 25, 2008 at 09:43 UTC||Need Help??|
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.
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?