in reply to Hash Parsing Problem

You might want to check that the file GUESTBOOK is actually opened. Since you didn't post that bit of code, I'm presuming it should look something like this:
open(GUESTBOOK, ">>", $guestbook) || die "Could not open guestbook\n";
If your filehandle isn't open, you may be printing to nowhere.

Further, where are you getting %form_data from? The code you posted shows you declaring it, then suddenly expecting things to exist by magic. Here's how you might do it:
use CGI; my $cgi = CGI->new(); my %form_data = %{$cgi->Vars};
Also, watch out! use strict. I think you're making a mistake when you do this:
$form_data{$name}
Don't you mean this?
$form_data{name}
With strict and warnings, the variable reference should cause a complaint, since $name is presumably undeclared.