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

pq
 2013-11-03 15:43
#171736 #171736
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ich verstehe erstmal gar nicht, was du haben willst.

einerseits möchtest du dynamisch die hashes %Station1, %Station2 etc. füllen.
und zwar für jede zeile neu. wenn also ein bezeichner mehrmals vorkommt, wird nur die letzte zeile berücksichtigt.
und dann willst du die dynamisch gefüllten hashes in @alarme ablegen, wobei der name des hashs dann ja eh wieder verloren geht.

grundsätzlich löst man das problem der dynamischen variablennamen mit hashes. genau dafür sind hashes gemacht.
da deine variablen hashes sein sollen, hättest du dann eben hashes of hashes.

ich werde wie gesagt aus deinem skript nicht schlau, welche daten du am ende haben möchtest.

möchtest du für jede "Station" eine liste haben?

Code (perl): (dl )
1
2
3
4
5
6
7
8
use Data::Dumper;
my %stationen;
...
# in der schleife
push @{ $stationen{ $1 } }, { zeit => $2, alarm1 => $3, alarm2 => $4, alarm3 => $5 };
...
# am ende
print Dumper \%stationen;


hier solltest du sehen, wie die fertige datenstruktur aussieht.
$stationen{1} ist eine array-referenz. dieses array beinhaltet wiederum hashes (referenzen), für jede zeile einen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread strict + Variable als Hashname