Struppi: Suchen und Ersetzen

Beitrag lesen

Die Warnungen hast aber gefunden?
ähämm... wo find ich die? Im error-log? dann ja.

Ja.

klar, weil du jetzt alle Variabeln explizit mit my deklarieren musst.
OK. Das könnte ich noch machen.

Das erscheint jetzt nach unnötiger Mehrarbeit,
.. wenn's hilft :-)

genau ;-)

In den Textfeldern können aber mehrere Zeilen stehen: die will ich raushaben, so dass der Inhalt nur in einer Zeile steht.

Ebenso kann z.B. die Faxnummer nicht angegeben sein: hier möchte ich das ";" für ein leeres Feld haben, damit ich ich Excel weiterarbeiten kann.

Also, soweit ich das seh sollte es so gehen wie du es vorhast.
Die Zeilen:
 $wert = $Form{$field};
  $wert =~ s/\n/ /gim;
  print CSVFILE "$wert;";

sind nicht ganz so falsch, besser so:

my $wert = $Form{$field};
$wert = '' unless defined $wert
$wert =~ s/\n/ /g;
print CSVFILE "$wert;";

das sollte auch das Kriterium mit den leeren Feldern erfüllen. Wenn nicht ist irgendwo anders was faul.

Kurz. Ein Tippfehler "irgendwoanders" als an den relevanten Stellen ist meiner Meinung nach wohl nicht das Problem, eher die richtige Sytax für die angestrebte Lösung.

in deinem Falle ist es evtl. eher ein Problem mit undefinierten Variabeln. Im Prinzip sollte man immer überprüfen ob man einen Wert hat oder einen der dem entspricht was man erwartet.
Das $wert = '' unless defined $wert macht genau das, da du einen String willst bzw. brauchst, bekommst du, falls das Feld nicht ausgefüllt wurde, einen Leerstring.

Struppi.