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
<Location /perl>
   SetHandler     perl-script
   PerlHandler    Apache::Registry
   Options        ExecCGI
</Location>

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 <br />";
   $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 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
> <Location /perl>
>    SetHandler     perl-script
>    PerlHandler    Apache::Registry
>    PerlSendHeader On
>    Options        +ExecCGI
> </Location>
> 
> 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.

Reply via email to