Moin allemiteinander!
Also ich schreib grad ein kleines Perlscript, das Formulardaten speichern und löschen soll.
Die Einträge speicher ich mit einer eindeutigen ID (Unix-Timestamp (denk ich, dieses Sekunden-seit-1970-Ding), da es unwahrscheinlich ist, das 2 Einträge gleichzeitig entstehen.
In die Textdatei schreib ich das nach dem Schema
ID|Formulardaten
Das schreiben geht wunderbar.
Nun zu meiner Lösch-Idee: Ich übergebe den Timestamp und den Array mit den Daten aus der Datei (gespeichert in einem Array) an die Prozedur, suche den Timestamp raus, lösche den Inhalt der Zeile und schreibe den Array dann praktisch mit einer Leerzeile zurück in die Datei. Mein Prob is jetzt nur das er alles löscht, also nach dem Vorgang in der Textdatei garnichts mehr drinsteht.
Unten mein Code, ich hoffe jemand kann mich auf meinen Denkfehler hinweisen, mir gehen nämlich die Ideen aus. Zur Info: Ich beschäftige mich erst eine Woche auf meiner Arbeit mit Perl, also verzeiht bitte Anfängerfehler
Also ich schreib grad ein kleines Perlscript, das Formulardaten speichern und löschen soll.
Die Einträge speicher ich mit einer eindeutigen ID (Unix-Timestamp (denk ich, dieses Sekunden-seit-1970-Ding), da es unwahrscheinlich ist, das 2 Einträge gleichzeitig entstehen.
In die Textdatei schreib ich das nach dem Schema
ID|Formulardaten
Das schreiben geht wunderbar.
Nun zu meiner Lösch-Idee: Ich übergebe den Timestamp und den Array mit den Daten aus der Datei (gespeichert in einem Array) an die Prozedur, suche den Timestamp raus, lösche den Inhalt der Zeile und schreibe den Array dann praktisch mit einer Leerzeile zurück in die Datei. Mein Prob is jetzt nur das er alles löscht, also nach dem Vorgang in der Textdatei garnichts mehr drinsteht.
Unten mein Code, ich hoffe jemand kann mich auf meinen Denkfehler hinweisen, mir gehen nämlich die Ideen aus. Zur Info: Ich beschäftige mich erst eine Woche auf meiner Arbeit mit Perl, also verzeiht bitte Anfängerfehler

Code:
sub loeschevorgang {
# Argumente übernehmen, array und timestamp-id
my $tstamp = shift;
my @datei = shift;
#hilfsvariablen initialisieren
$r=0;
$check=0;
#array durchlaufen, einzeleinträge in einen idteil und einen datenteil trennen, dabei hilfsvariable hochzählen, für die stelle des arrays an dem wir sind
foreach $eintraege (@datei) {
($id,$daten)=split(/\|/,$eintraege);
#überprüfen ob idteil mit der übergebenen id übereinstimmt, wenn ja hilfsvariable setzen
if ($id == $tstamp) {
$check=$r;
}
$r++;
}
#kleiner check ob die id überhaupt gefunden wurde (code fehlt, irrelevant)
#if ($check == 0) {
#}
#inhalt des arrays an der oben ausgewählten stelle löschen
$datei[$check] = '';
#datei zum schreiben öffnen
open (FILE, '>temp/formdaten');
#jeden arrayeintrag rückschreiben
foreach $eintrag (@datei) {
print FILE "$eintrag";
}
#datei schließen
close FILE;
}