Hi
I have the simplest test case of a mod perl module which is

using Rec::Descent module to parse some string. I can run
the script on command line so there is no problem with the
script but when run via web server as a mod_perl module, I
get an error in the error_log :

[Tue Jun 11 14:25:27 2002] [error] Unknown starting rule
(Parse::RecDescent::0::Replace) called
 at /home/praveen/temp/mod_perl_expr.pm line 9

The web server is running as 'praveen' - the same user
which can also run the script from command line to test
out 'mod_perl_expr.pm' module.

The relevant portion in httpd.conf :
<Location /mod_perl_expr>
        SetHandler      perl-script
        PerlHandler     mod_perl_expr
</Location>


The mod_perl module is given :

package mod_perl_expr;

use strict;
use Parse::RecDescent;

sub handler
{
    my $r=shift;
    my $p=Parse::RecDescent->new(grammar());
    my $result = 0;
    eval { $result = $p->expr("3+4") };
    $r->send_http_header;

    print<<EOJ;
 <html><body><H3>RESULT -> $result</h3></body></html>
EOJ
}


sub grammar
{
return<<'GRAMMAR';

expr : number '+' number
{$return=$item[1]+$item[3]; }

number : /\d+/ 

GRAMMAR
}

1;


=====
  - Praveen  

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

Reply via email to