Thread Wie bearbeitet man ein Array? (12 answers)
Opened by geloescht at 2012-06-25 22:35

Raubtier
 2012-06-26 00:58
#159373 #159373
User since
2012-05-04
1054 Artikel
BenutzerIn

user image
Darf ich mal ein paar generelle Kommentare loswerden?

a) Du benutzt kein CSV-Modul, versuchst also, das Rad neu zu erfinden. Das mag interessant sein, aber dein Code schlägt fehl, sobald jemand irgendwo ein Semikolon im Text eingibt. Dann splittet dein split /;/ nämlich falsch. Bitte beachte solche Fälle oder nutze eben Module, in denen sowas schon funktioniert.

b) Findest du es wirklich sinnvoll, Stunden, Minuten, Sekunden, Tag, Monat, Jahr einzeln zu speichern? Es ist viel sinnvoller und vor allem auch einfacher, einfach nur einen Zeitstempel zu speichern! Das Umrechnen in Datum+Zeit machst du dann jeweils direkt vor der Ausgabe. Damit vereinfachen sich auch Dinge wie "War Beitrag B innerhalb von 5 Minuten vor Beitrag A" - einfach Differenz bilden und schauen, ob es größer als 5 Min ist. Wenn du das alles einzeln speicherst, müsstest du ja ständig wegen Überlauf prüfen!

c) bei deinem Code
open(FILEMANAGER, "+>>coresys/incoming.csv") or die "ERROR: Unable to open the IC-file!";
- öffnen zum Anhängen und auch zum Schreiben. Danach versuchst du, aus der Datei zu lesen. Wie soll das sinnvoll gehen - du bist doch schon am Dateiende?!
- beim ...or die sollte auf der Grund des Fehlers ausgegeben werden, der steht in der Variablen $!
- und wie gesagt, nimm doch bitte unseren Rat an und nutze lexikalische Dateihandles und die 3-Argument-Form, also open my $FILEMANAGER, '+>>', 'coresys/incoming.csv' or die "Öffnen fehlgeschlagen. Grund: $!"; - wie gesagt, wobei ich mich frage, ob du wirklich '+>>' willst.

View full thread Wie bearbeitet man ein Array?