Re: how to require() a file?

2009-03-04 Thread Stanisław T. Findeisen

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?

2009-03-01 Thread Dermot Paikkos
 -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?

2009-02-27 Thread Stanisław T. Findeisen

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