Hi,
I'm new to mod_perl and I'm trying to port a web application I had 
running using java-servlets to perl (becouse I'm running a server on 
a very old machine, and mod_perl is giving me excelent speeds). I've 
read the mod_perl guide, specifically the section 5 (the mod_perl 
guidelines), but I'm still having problems. It's a simple web-forum 
(bbs) using DBI to access a mysql database.
I have two files:

index.perl -> in a web directory
AALC.pm -> in /var/www/perllib

This is my startup.pl file:
------
use strict;
use lib "/var/www/perllib";
$ENV{GATEWAY_INTERFACE} =~ /^CGI-Perl/ or die "GATEWAY_INTERFACE not Perl!";
use Apache::Registry ();
use CGI (); CGI->compile(':all');
use CGI::Carp ();
use DBI ();
use DBD::mysql ();
1;
------
In AALC.pm (which defines the package AALC) I've defined some global 
variables and all of my methods (display info, query the database, 
open files, etc). This is index.perl:
------
use AALC;
my $q = CGI->new or die $aalc_text{'eruk'};
my $forum_id = defined($q->param('forum')) ? $q->param('forum') : "";
my $msg_id   = defined($q->param('msg_id')) ? $q->param('msg_id') : 0;

print $q->header('text/html');
if ($msg_id > 0)
{
   AALC->show_message($msg_id);
   return;
}
if ($forum_id ne "")
{
   AALC->show_forum($forum_id);
   return;
}
AALC->list_forums();
------
The problem I'm facing right now is that it works the first time. But 
the second time I make a request to the database (when I pass a 
$msg_id parameter) it won't work (it's like it's reading a wrong 
parameter or not accessing the database). If I try to modify the 
module AALC.pm (which has a 'use Apache::Reload', to not restart the 
server each time) it dies with this error:

[error] Too many arguments for AALC::display_error at 
/var/www/perllib/AALC.pm line 28, near "})"

which is stupid, because I didn't modify that line, and it was 
working fine. This is line 28:

$sth = $dbh->prepare($query) or display_error($aalc_text{"erbd"});

In AALC.pm $query, $dbh, $sth and two other variables are defined as 
locals (with 'my'). I just don't know what to do or where to start 
looking for the error. Can anyone please point me in the right 
direction?
thanks a lot,
-- 
Rolando Abarca
Estudiante Injenieria U. de Chile
rabarca (at) ing.uchile.cl - funk (at) andatealachucha.cl

Reply via email to