andrea: Schreiben (bzw. Öffnen) von 2 Dateien innerhalb einer Funktion? - Perl

Beitrag lesen

Hallo,

und ich nocheinmal!

Problem:

Ich möchte auf einer mit Perl erstellten HtML-Seite
Textfelder und Textareafelder anzeigen.

Der Inhalt der Textfelder soll aus einer Datei ausgelesen werden:  xxxcccfff
Der Inhalt des Textareafeldes soll aus einer separaten Datei ausgelesen werden
(Ich möchte mehrzeilige Angaben ermöglichen).

Anschießend sollen die angezeigten Angaben (nach eventueller Änderung)
mit einer einzigen Funktion wieder in die Ursprungsdateien zurückgeschrieben
werden (Klick auf Button zum Schreiben aller Felder der Seite).

Wenn ich nur die Textfelder öffne und schreibe klappt es
und wenn ich nur das Textareafeld öffne und schreibe klappt es.
Aber wenn ich alle Felder in einer Funktion öffnen und einer Funktion
schreiben will klappt nix mehr:

#######################

sub modcourtesy {

open (COURTESY, "courtesy.db");
@courtesy = <COURTESY>;
close(COURTESY);
$courtesyline = ($courtesy[0]);
chomp($courtesyline);
($coursender,$coursubject,$courfields) = split(//, $courtesyline);

...

open (COURTEXT, "courtext.txt");
while (<COURTEXT>) {
$_ =~ s/</&#60;/ig;
$_ =~ s/>/&#62;/ig;
push (@courtext,$_);
}
close(COURTEXT);

....

sub writecourtesy {

&checkpassword;

$writecourtesyline = "$FORM{'coursender'}$FORM{'coursubject'}$FORM{'courfields'}\n";
open (WRITECOURTESY, ">courtesy.db");
print WRITECOURTESY "$writecourtesyline";
close(WRITECOURTESY);

open (COURTESY, "courtesy.db");
@courtesy = <COURTESY>;
close(COURTESY);
$courtesyline = ($courtesy[0]);
chomp($courtesyline);
($coursubject,$courtext) = split(//, $courtesyline);

...

$FORM{'courtext'} =~ s/&#60;/</g;
$FORM{'courtext'} =~ s/&#62;/>/g;

@Newcourtext = $FORM{'courtext'};

open (WRITECOURTEXT,">courtext.txt");
        foreach $Newcourtext (@Newcourtext) {
                print WRITECOURTEXT "$Newcourtext\n";
        }
close(WRITECOURTEXT);

##########################

Was mach ich falsch?
Wäre es evtl. auch möglich mehrzeiligen Text innerhalb der $writecourtesyline
abzuspeichern und wieder aufzurufen?

Wenn ich den courtesytext in der $courtesyline/$writecourtesyline mitaufrufe
wird zwar alles gespeichert aber beim aufrufen wird nur die erste Zeile des
Textarea-feldes angezeigt. Nach dem ersten Zeilenumbruch dort wird der Rest
der line nicht mehr ausgelesen.

Habt Ihr einen Tip?

Gruß,

andrea