Thread strict + Variable als Hashname (2 answers)
Opened by qwe123qwe at 2013-11-03 15:27

qwe123qwe
 2013-11-03 15:27
#171735 #171735
User since
2013-10-08
65 Artikel
BenutzerIn
[default_avatar]
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:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
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)

View full thread strict + Variable als Hashname