You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by will trillich <wi...@pinncomp.net> on 2000/07/02 10:49:07 UTC
perlSendHeader On/Off: the difference!
perlSendHeader On / Off -- what's the real difference?
i finally figured it out, after seeing many 'server errors'
on one hand, and http headers cluttering up the html output
to the browser on the other...
i have a perl script
test.npl
and a symbolic link to it
`ln -s test.npl test.pl`
so that the same code will be called whether it's
*.pl or *.npl...
and in httpd.conf,
<FilesMatch "\.(pl|perl)">
Options +ExecCGI
SetHandler perl-script
PerlSendHeader On
PerlHandler Apache::PerlRun
</FilesMatch>
<FilesMatch "\.((nph|n)-?)(pl|perl)">
Options +ExecCGI
SetHandler perl-script
PerlSendHeader Off
PerlHandler Apache::PerlRun
</FilesMatch>
so any script named *.pl runs with perlSendHeader ON;
any script named *.npl runs with perlSendHeader OFF.
here's the relevant code from the top of the script:
my $eol = "\015\012";
my $mod = scalar localtime( $seen{$path} ||= (stat $path)[9] );
my $span = 60*60*24;
print "HTTP/1.1 200 OK",$eol
if $0 =~ /\.npl$/ # if PERLSENDHEADER == OFF, say 'HTTP/...'
;
print "Content-Type: text/html",$eol,
"Last-Modified: ",$mod,$eol,
"Date: ",scalar(localtime),$eol,
"Expires: ",scalar(localtime(time+$span)),$eol,
$eol
;
print "<html>"....
and the script behaves identically, whether called
as *.npl or *.pl, with no server error (missing headers)
and no http clutter at the top of html output (extra
headers).
thus i conclude that (aside from the internals revealed at
http://perl.apache.org/faq/mod_perl_cgi.html#The_script_runs_but_the_headers_
) PERLSENDHEADER ON makes mod_perl generate the initial
'HTTP' intro, and that's that.
yes? no? do i win a prize?
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Their is five errers in this sentance.