Есть много проблем с кодом. Из того, что я вижу в вашем коде, у вас есть таблица внутри тела и в конце закрыта только одна таблица. Во-вторых, вы также пытаетесь вставить тд в другой тд, что не правильно. Посетите сайт разработчика mozilla для получения дополнительной информации об использовании таблиц HTML.
Вы, вероятно, хотите считать это обсуждение. Кажется, что Вы не должны разветвляться на mod_perl, если Вы не знаете, как подготовить вещи. Необходимо использовать модуль, такой как Apache2:: SubProcess
Попытайтесь закрыть свои дескрипторы STDIN/STDOUT перед ветвлением.
В моем (раньше mod_perl, теперь FCGI) код, я "еще" имею в пункт "если ($kpid)",
close STDIN;
close STDOUT;
close STDERR;
setsid();
Кроме того, по причинам, что я забыл, я сразу, ветвление снова, и затем в том ребенке вновь открыло STDIN, STDOUT и STDERR.
Таким образом, это похоже:
$SIG{CHLD} = 'IGNORE';
# This should flush stdout.
my $ofh = select(STDOUT);$| = 1;select $ofh;
my $kpid = fork;
if ($kpid)
{
# Parent process
waitpid($kpid, 0);
}
else
{
close STDIN;
close STDOUT;
close STDERR;
setsid();
my $gpid = fork;
if (!$gpid)
{
open(STDIN, "</dev/null") ;#or print DEBUG2 "can't redirect stdin\n";
open(STDOUT, ">/dev/null") ;#or print DEBUG2 "can't redirect stdout\n";
open(STDERR, ">/dev/null") ;#or print DEBUG2 "can't redirect stderr\n";
# Child process
exec($pgm, @execargs) ;# or print DEBUG2 "exec failed\n";
}
exit 0;
}