Previously when I did an appln with CGI::App then I 'return'ed and hence got the pages. This time I am trying with mod_perl and when I was trying to 'return', nothing is getting printed
Here is the code, what I got now: sub mode1_sub { my $self = shift; my $req = $self->query(); $req->content_type( 'text/html' ); #$req->send_http_header; my $var = "Hello!!! Its Working <br />"; return $var; #$req->print( $var ); } This above code snippet did not print anything. If I uncomment send_http_header line, then it is printing ONLY headers and NOT the $var I have PerlSendHeader as 'Off' in config file, even if I change that to 'On', there is no change in the result. Anthony Gardner wrote: > > Unless I'm missing sth, have you read the docs? > > With CGI::Application, you don;t print anything, you just return whatever > it is you want 'printed' > > Dileep Eduri <[EMAIL PROTECTED]> wrote: > I have able to solve to maximum extent. > rectified all the errors and able to print the result. this time its > printing the http headers as well....if I turn of http headers, then > nothing > is getting printed..little weird !!! > > modified my httpd conf file as follows: > > Config File Entry > > Alias /perl /docroot/cgi-perl > PerlModule Apache::Registry > > SetHandler perl-script > PerlHandler Apache::Registry > Options ExecCGI > > > and changed the perl module as follows: > > Perl Module => First.pm > > package First ; > use strict; > use base 'CGI::Application'; > use CGI::Application::Plugin::Apache qw(:all); > > sub setup { > > my $self = shift; > $self->run_modes( 'mode1' => 'mode1_sub' ); > $self->start_mode( 'mode1' ); > } > > sub mode1_sub { > > my $self = shift; > my $req = $self->query(); > $req->content_type( 'text/html' ); > $req->send_http_header; > > my $var = "Hello!!! Its Working > "; > $req->print( $var ); > } > > 1; > > my CGI Script => first.cgi > > use strict; > use First; > > my $webapp = First->new(); > $webapp->run(); > > Result > > Its printing in browser along with headers as follows: > > Hello!!! Its Working > HTTP/1.1 200 OK Date: Fri, 26 Oct 2007 19:45:18 GMT Server: Apache/1.3.33 > (Darwin) PHP/4.3.9 mod_perl/1.26 Keep-Alive: timeout=15, max=98 > Connection: > Keep-Alive, Keep-Alive Transfer-Encoding: chunked, chunked Content-Type: > text/html > > I dont want to print headers so that only HTML content is shown...if I > tried > to comment $req->send_http_headers; line in perl module, then nothing is > seen in the browser. > > unable to figure out solution. Please help me > > > > Dileep Eduri wrote: >> >> Hi everyone, >> >> Recently I have ported my Apache server to mod_perl and the server is >> working fine. I can say this by checking the error log and it says: >> >> [Fri Oct 26 10:52:16 2007] [notice] SIGHUP received. Attempting to >> restart >> [Fri Oct 26 10:52:17 2007] [warn] module mod_php4.c is already added, >> skipping >> [Fri Oct 26 10:52:17 2007] [notice] Apache/1.3.33 (Darwin) PHP/4.3.9 >> mod_perl/1.26 configured -- resuming normal operations >> [Fri Oct 26 10:52:17 2007] [notice] Accept mutex: flock (Default: flock) >> >> And I am running this Apache on MAC. The entries for mod_perl in >> httpd.conf is as follows: >> >> Alias /perl /docroot/cgi-perl >> PerlModule Apache::Registry >> >> SetHandler perl-script >> PerlHandler Apache::Registry >> PerlSendHeader On >> Options +ExecCGI >> >> >> Problem >> >> I am trying to create mod_perl based appln using CGI::Application and I >> am >> just printing a message. Here is the Perl Module Test.pm, which will be >> loaded. >> >> >> package Test ; >> use strict; >> #our @ISA = qw[ CGI::Application ]; >> use base 'CGI::Application'; >> >> sub setup { >> >> my $self = shift; >> $self->run_modes( 'mode1' => 'mode1_sub' ); >> $self->start_mode( 'mode1' ); >> >> } >> >> sub mode1_sub { >> >> my $self = shift; >> my $req = $self->query(); >> >> $req->content_type( 'text/html' ); >> $req->send_http_header; >> >> return "using CGI::Application and mod_perl"; >> } >> >> 1; >> >> Here is my CGI Script test.cgi: >> >> use strict; >> use lib '/docroot/cgi-perl/test'; >> use Test; >> >> my $webapp = Test->new(); >> $webapp->run(); >> >> Both the CGI script and the module are in same directory. I am getting >> following error message in my error log and I am just could not >> understand, where I am doing wrong. >> >> [Fri Oct 26 11:05:39 2007] [error] Can't locate object method "new" via >> package "Test" at /docroot/cgi-perl/test/test.cgi line 5.\n >> >> Please guide me in this regard and it will be great help for my >> application. >> >> Thanks. >> > > -- > View this message in context: > http://www.nabble.com/mod_perl-and-CGI%3A%3AApplication..-Strange-Behaviour-tf4697759.html#a13434311 > Sent from the mod_perl - General mailing list archive at Nabble.com. > > > > > Disclaimer: Technically, I'm always wrong!! > > --------------------------------- > For email that puts you in control, choose Yahoo! Mail. > ----- With Best regards, Dileep. *************************************************** -- View this message in context: http://www.nabble.com/mod_perl-and-CGI%3A%3AApplication..-Strange-Behaviour-tf4697759.html#a13435304 Sent from the mod_perl - General mailing list archive at Nabble.com.