Front page | perl.beginners |
Postings from September 2003
RE: building module/package
September 30, 2003 12:09
RE: building module/package
Message ID: email@example.com
my redhat 9 is configured canned w/apache and mod_perl. The only
configuration I know is in /etc/httpd/conf.d/perl:
Alias /mp /var/www/mp
####put this here?
setenv PERL5LIB /path/to/lib
> Besides the advice given below, there are a few other things you can do...
> To add the location of the Perl script to the lib path you can use this.
> The FindBin module finds your script, then sets $Bin to that location.
> use FindBin qw($Bin);
> use lib $Bin;
> Another way to do it is to set the environment variable PERL5LIB to the
> location of your home-grown modules. You can set this in the Apache
> (or .htaccess file) with the setenv command (see Apache docs for more
> but I think it is "setenv PERL5LIB /path/to/lib").
> You could also install it into the "site_perl" directory in your @INC
> but you should never put it in the "vendor_perl" directories.
> Of the above options I would recommend using the PERL5LIB env variable.
> ...And I would also recommend that the libraries not be put in any
> accessable to the web server (unless you have no choice).
> -----Original Message-----
> From: Daniel Staal [mailto:DStaal@usa.net]
> Sent: Tuesday, September 30, 2003 2:39 PM
> To: firstname.lastname@example.org; Perl Newbies
> Subject: Re: building module/package
> --On Monday, September 29, 2003 23:53 -0700 "email@example.com"
> <firstname.lastname@example.org> wrote:
>> -I've sent this to the mod_perl list but there seems to be no
>> I got the module working in the current directory executing on the
>> command line. But I have a problem calling a module in my mod_perl
>> dir using apache on redhat 9. I have a mystuff.pm in the same
>> directory as the calling perl program. I got it working running on
>> the command line but in apache mod_perl, it can't find the module.
> Ok, I know nothing about mod_perl, but let's see what I can do.
> First guess: mod_perl considers that 'the current directory' is
> either itself or insecure. (Probably the latter: it is in this
>> - Where should the mystuff.pm be located in?
>> - The only place i know about mod_perl configuration file is:
>> /etc/httpd/conf.d/perl.conf. This contains the Alias and Directory
>> Error message:
>> Can't locate mystuff.pm in @INC (@INC contains:
>> /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0
>> /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
>> /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
>> /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .)
> Hmm. So it does seem to contain the current directory... (That
> would be the '.' at the end.) Doesn't help much: We still don't know
> *which* directory is the current directory.
> There are two or three things you could do here. First off, you
> could put 'mystuff.pm' in one of the above directories. Don't really
> recommend that, it confuses the user on what is written on your end
> and what isn't, but it is possible.
> Secondly, you could see if there is a way to add to the @INC array in
> mod_perl's config. I would assume so, but I have no clue...
> Third, you could add to @INC in your program file. The best way to
> do this is to use the 'use lib' pragma. Syntax: 'use lib "$lib";'
> where $lib is any perl expression that can be expanded into the
> directory. (That means you can use variables, but only ones that
> will have a value without running any of your program code...) Put
> that in your program before you 'use' your module.
> To simplify: put 'use lib "/path/to/module";' before 'use module;' in
> your main program and it should work. ;-)
>> Any help would be great.
>> By the way, I just getting started with perl.
> Hey, I haven't even completed my first perl program yet. It just
> happens that my first program is best written with three modules...
> Daniel T. Staal
> This email copyright the author. Unless otherwise noted, you
> are expressly allowed to retransmit, quote, or otherwise use
> the contents for non-commercial purposes. This copyright will
> expire 5 years after the author's death, or in 30 years,
> whichever is longer, unless such a period is in excess of
> local copyright law.
> To unsubscribe, e-mail: email@example.com
> For additional commands, e-mail: firstname.lastname@example.org