Re: how to require() a file?
Gunnar Hjalmarsson wrote: Stanisław T. Findeisen wrote: I am trying to require() a file using its absolute name. In command line mode everything works fine, but not in Apache: [Fri Feb 27 17:45:07 2009] [error] Can't locate /home/stf/public_html/test/arcv/public_html/../common.pl in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi snip /usr/lib/perl5/5.8.8 . /etc/httpd) at ---^ How can I require() a file when using Perl in CGI mode? Do I have to modify @INC? Based on your reply (to an answer that I not saw) it seems like giving the web server read access to common.pl solved your problem. Together with the fact that the current directory is included in @INC, it indicates that you are not running the script under mod_perl. I guess I am using mod_perl: Guess?? You really, really ought to know! What happens if you add this line to the script: print Not mod_perl\n unless $ENV{MOD_PERL}; Nothing is being printed. :-) I am having taint mode commented out in my /etc/httpd/conf.d/perl.conf file: # Uncomment this line to enable taint checking globally. When Perl is # running in taint mode various checks are performed to reduce the # risk of insecure data being passed to a subshell or being used to # modify the filesystem. Unfortunately many Perl modules are not # taint-safe, so you should exercise care before enabling it on a # production server. # #PerlSwitches -T and that's why I am having . included in @INC, I guess. STF === http://eisenbits.homelinux.net/~stf/ . My PGP key fingerprint is: 9D25 3D89 75F1 DF1D F434 25D7 E87F A1B9 B80F 8062 === signature.asc Description: OpenPGP digital signature
RE: how to require() a file?
-Original Message- From: Stanisław T. Findeisen [mailto:sf181...@students.mimuw.edu.pl] Sent: 27 February 2009 17:03 To: beginners-cgi@perl.org Subject: how to require() a file? I am trying to require() a file using its absolute name. In command line mode everything works fine, but not in Apache: [Fri Feb 27 17:45:07 2009] [error] Can't locate /home/stf/public_html/test/arcv/public_html/../common.pl in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux- thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . /etc/httpd) at /home/stf/public_html/test/arcv/public_html/ticket-list.pl line 13, DATA line 344.\n How can I require() a file when using Perl in CGI mode? Do I have to modify @INC? I don't really feel like making it a module, and putting it into Some Well Known Location is something I don't feel like even more. It's just a supporting file that I want to keep together with the rest of the application. I guess I am using mod_perl: If you are using mod_perl then you can use the PerlSwitches directive for -I/path/to/common.pl. Alteratively you use `use lib` in your ticket-list.pl HTH, Dp. -- To unsubscribe, e-mail: beginners-cgi-unsubscr...@perl.org For additional commands, e-mail: beginners-cgi-h...@perl.org http://learn.perl.org/
Re: how to require() a file?
Dermot Paikkos wrote: If you are using mod_perl then you can use the PerlSwitches directive for -I/path/to/common.pl. Alteratively you use `use lib` in your ticket-list.pl Alternatively, I can do chmod g+r,o+r common.pl :-) STF === http://eisenbits.homelinux.net/~stf/ . My PGP key fingerprint is: 9D25 3D89 75F1 DF1D F434 25D7 E87F A1B9 B80F 8062 === signature.asc Description: OpenPGP digital signature