davidj has asked for the wisdom of the Perl Monks concerning the following question:

Fellow monks,
I'm getting unexpected behavior using  use lib; It seems that the only directory my module can be found in is a subdirectory of the directory out of which the pages are being served. Also, when I don't  use lib; and put the module in my PERL5LIB directory, Perl complains that it cannot be found. I have verified that all is setup correctly. Here is what I have: (in the script)
use lib "/home/davidj/perl/lib/survey";
directory listing:
andromeda:davidj lib > pwd /home/davidj/perl/lib/survey andromeda:davidj survey > ls -l total 4 -rw-r--r-- 1 davidj users 1444 Oct 23 03:09
http error output:
[Mon Oct 23 03:23:49 2006] [error] [client] Can't locate sur in @INC (@INC contains: /home/davidj/perl/lib/survey /usr/lib/ +perl5/site_perl/5.8.8/i386-linux-thread-multi .....
I have tested other directories and nothing seems to work. However, if I do this:
use lib "/var/www/cgi-bin/survey/lib/";
and put the module file in that directory, with the pages being served out of /var/www/cgi-bin/survey, it all works fine.

It is fine for me to store modules in the application subdirectories. I'm just wondering why Perl cannot find them anywhere else, including my exported PERL5LIB directory.