leider hab ich offensichtlich ein Verständnisproblem bei der Verwendung von Listen von Hashes...
ich habe eine Datei mit Alarmwerten der Art
<Bezeichner> <Zeitstempel> <Alarmwert1> <ALarmwert2> <Alarmwert3>
wie hier :
Station1 09:09 343 33.6 -18.8
Station2 10:11 43 33.3 20
Station3 11:11 230 33,8 1.9
...
in meinem jugendlichen Übermut wollte ich die Datei mit folgendem Code in eine Liste einlesen:
use strict;
my @alarme = ();
open (ALARMDATEI, "<Alarmdatei.txt") || die "kann Alarmdatendatei nicht öffnen : $!";
while (my $zeile = <ALARMDATEI>) {
$zeile =~ /(.+)\t(.+)\t(.+)(\t+)(.+)/;
%$1 = ( zeit => $2, alarm1 => $3, alarm2 => $4, alarm3 => $5);
push (@alarme, %$1);
}
close (ALARMDATEI);
jetzt bekomme ich mit dem "strict" aber folgende Fehlermeldung :
Can't use string ("Station1") as a HASH ref while "strict refs" in use at ./test.pl line 12, <ALARMDATEI> line 1
wie kann ich das denn elegant umgehen, ohne auf das "strict" zu verzichten ?
das ist jetzt wieder die Ausgangslage; beim Versuch, das mit Hilfe von Artikeln im Netz zu lösen hab ich mich da inzwischen so verstiegen in einem Labyrith von @Listen{Hashes}@Listen, daß ich mich nur noch im Kreis drehe...... :) - ich denke aber, da muß es eine relativ simple Lösung dafür geben (oder nicht ?)
Danke schon mal im Voraus
Last edited: 2013-11-03 15:28:52 +0100 (CET)