Spooky: "use strict" und Variablendeklaration

Beitrag lesen

erst mal vielen Dank für die Hinweise. Ich glaub allerdings ich hab da noch ein anderes Problem.

Es liegt jedenfalls nicht an sendmail, sondern am Einsatz des strict-Pragmas, ohne zu wissen, warum man das tut.
Lies zusätzlich noch die Erläuterungen zu my. Na, dämmert's :-)

Ich muss also meine Variablen deklarieren lokal(my) reicht denke ich.
Die Danke-Seite wird zwar geöffnet und habe auch keine Fehlermeldung mehr. Aber mails bekomme ich trotzdem nicht. Der Debugger zeigt auch keine Fehler an. Was kann das nur sein?

use CGI;

my $query = new CGI;
my @names = $query->param;

-------> interne Daten aus den erwarteten hidden-Feldern auslesen:

my $delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und  value
my $returnhtml = $query->param('return');    # ---> URL für Dankeseite
my $subject = $query->param('subject');      # ---> E-Mail-Subject

$subject =~ s/\s/ /g;

-------> Text der E-Mail aus den Formulardaten ermitteln:

my $mailtext = "";
foreach(@names) {
  my $name = $_;
  my @values = "";
  @values = $query->param($name);
  if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach my $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $mailtext = $mailtext.$value."\n";
    }
  }
}

-------> E-Mail versenden:

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

-------> Dankeseite an Browser senden:

print "Location: $returnhtml\n\n";