Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

unexpected use lib behavior

by davidj (Priest)
on Oct 23, 2006 at 09:38 UTC ( #579968=perlquestion: print w/ replies, xml ) Need Help??
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 survey.pm
http error output:
[Mon Oct 23 03:23:49 2006] [error] [client 127.0.0.1] Can't locate sur +vey.pm 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.

davidj

Comment on unexpected use lib behavior
Select or Download Code
Re: unexpected use lib behavior
by andyford (Curate) on Oct 23, 2006 at 09:44 UTC
      I am not forgetting. The problem happens only when I take the module out of an app subdirectory and change the corresponding use lib; directory.
      #!/usr/bin/perl -T use strict; use warnings; #use lib "/var/www/cgi-bin/survey/lib"; use lib "/home/davidj/perl/lib/survey"; use CGI qw/standard/; use survey;
Re: unexpected use lib behavior
by tinita (Parson) on Oct 23, 2006 at 09:47 UTC
    well, you don't show your code where you use survey;. are you doing this before the use lib line maybe?
Re: unexpected use lib behavior
by Tomte (Priest) on Oct 23, 2006 at 09:49 UTC

    While the file survey.pm is readable by everyone (rw-r--r--), is the directory /home/davidj/perl/lib/survey accessible by the user the www-server runs as (r-x for others the whole way down)?

    regards,
    tomte


    An intellectual is someone whose mind watches itself.
    -- Albert Camus

      Well, dang it. I thought I had resolved the directory permissions, but I didn't.

      Thanks all,
      davidj
Re: unexpected use lib behavior
by gellyfish (Monsignor) on Oct 23, 2006 at 09:50 UTC

    I think you'll find it is to do with the permissions on the directories.

    /J\

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://579968]
Approved by tinita
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2014-12-27 13:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls