> however when I run the following code
>
> #!c:/perl/bin/perl -w
>  use Apache ();
> use Apache::Request ();
> use CGI::Carp qw(fatalsToBrowser);
> my $r = Apache::Request->new(shift);
> # my $apr = Apache::Request->new($r);
> print  "Content-type:text/html\n\n";
> print "Hello, World...\n";
> print $r;
> print @INC;
>
> I receive the message
> Can't locate object method "new" via package "Apache::Request" (perhaps
> you forgot to load "Apache::Request"?) at c:\apache\cgi-bin\ap2.pl line
> 6.

mod_perl sends $r to the handler() subroutine by default.  That is, if you're
using it in a PerlHandler context, like you should with anything that uses
Apache::Request.

Therefore, th ollowing should work for you.

#!/usr/bin/perl -w
use strict;

use Apache::Constants qw(:common);

sub handler {
  my $r = shift;
  my $result = undef;

  eval { $result = inner_handler($r) };
  return $result unless $@;

 warn "Uncaught Exception: $@";

  return SERVER_ERROR;
}

sub inner_handler {
  my $r = shift;

  $r->content-type('text/html');
  $r->status(200);

  my $html = "<html><head><title>Hello World!</title></head><body><center>You
Tried To Access URI: ". $r->uri ."</center></body></html>";

 $r->send_http_header;
  print $html;
}

Reply via email to