Jer: (CGI)Benötige Hilfe bei CGI-Skript!!

Habe folgendes Problem: Ich benötige ein CGI Skript, das mir die Daten eines Formulars
a) an eine emailadresse sendet und
b) die Daten in einer VCARD-Datei(Outlook) speichert.
Nun habe ich ein Skript geschrieben, nur leider funzt es nicht und ich hab keinerlei Ahnung weshalb nicht!!
Das Skript:

#Formulardaten einlesen

if($ENV{'REQUEST_METHOD'} eq 'GET')
  {
   $Daten = $ENV{'QUERY_STRING'}
  }
else
{
read (STDIN, $daten, $ENV{'CONTENT_LENGTH'});
}
@formularfelder = split (/&/, $daten);
foreach $feld (@formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ s/<!--(.\n)*-->//g;      
  $Formular[$i] = $name;  
  $i = $i + 1;
  $Formular[$i] = $value;  
$i = $i + 1;
}

Vorbereitung f_r VCARD

$firma  = $Formular[1];
$titel = $Formular[3];
$nname = $Formular[5];
$vname = $Formular[7];
$str = $Formular[9];
$post = $Formular[11];
$ort = $Formular[13];
$land = $Formular[15];
$email = $Formular[17];
$telnr = $Formular[19];
$faxnr = $Formular[21];
$name = $Formular[5].$Formular[7]

VCARD erstellen

open  (VCARD, ">$name.vcf");
print  VCARD "BEGIN:VCARD \n";
print  VCARD "VERSION:2.1 \n";
print  VCARD "N:$vname;$nname;;$titel \n";
print  VCARD "FN:$nname $vname \n";
print  VCARD "ORG:$firma \n";
print  VCARD "TEL;WORK;VOICE:$telnr \n";
print  VCARD "TEL;WORK;FAX:$faxnr \n";
print  VCARD "ADR;WORK;ENCODING=QUOTED-PRINTABLE:;;$str;$ort;;$post;$land \n";
print  VCARD "LABEL;WORK;ENCODING=QUOTED-PRINTABLE:$str=0D=A$ort $post=0D=0A$land \n";
print  VCARD "EMAIL;PREF;INTERNET:$email \n";
print  VCARD "END:VCARD";
close (VCARD);

#E-Mail versenden

$Mailprogramm = "/usr/lib/sendmail";    # Pfad zu E-Mailprogramm
$MailSubject = "Formluar-Feedback";     # E-Mail Betreff
$Empfaenger = "jericho_one@gmx.de";  # E-Mail Adresse
$SenderName = $Formular[5];       # Absender
$SenderMail = $Formular[17];             # E-Mail Adresse des Absenders

open(MAIL,"$Mailprogramm -t") print STDERR "E-Mailprogramm konnte aufgrund eines Fehlers nicht gestartet werden";

print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderMail $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";

$i = 0;
$max = $#Formular;
for($i=0;$i<=$max;$i=$i+2)
{
print MAIL "$Formular[$i]: $Formular[$i+1]\n";
}
close(MAIL);

print "Content-type: text/html\n\n";
print "Done.\n";

Danke schon mal im voraus!

  1. Nun habe ich ein Skript geschrieben, nur leider funzt es nicht und ich hab keinerlei Ahnung weshalb nicht!!

    Was heisst "es funzt nicht"? Wie aeussert sich der Fehler? Steht etwas im Error-Log?

    Tips:

    use CGI 'standard';
    use CGI::Carp 'fatalsToBrowser';

    Fange Fehler ab, wenn Du eine Datei oeffnest:
    open FILE, $file or die "Can't open $file: $!";

    Peter