Thread dynamisch mehrdimensionales Array
(19 answers)
Opened by sebi85 at 2010-10-27 10:09
Hallo sebi85,
2010-10-28T08:05:33 sebi85 Dann solltest Du evtl. ein Array als erste Ebene benutzen; das würde auch das Problem mit der Reihenfolge lösen. Du hättest dann ein AoHoHoA also ein Array mit Hashreferenzen mit Hashreferenzen mit Arrayreferenzen, z.B.: Code (perl): (dl
)
$array[0]->{'A'}->{'Param 1'}->[0]='Value 3'; Quote Sorry, das Folgende habe ich nicht verstanden. Vielleicht habe ich zu wenig Zeit dafür aufgewandt. Aber das Vorgehen mit den drei ineinander geschachtelten Schleifen ist auf jeden Fall prinzipiell richtig, und die beschriebene Datenstruktur lässt sich damit problemlos bedienen. Stelle doch hier mal Deinen konkreten Code ein (bitte zwischen [code=perl] und [/code]), dann wird es vielleicht klarer. Quote Doch, die Werte aus den umschließenden Schleifen stehen Dir zur Verfügung. Werte aus vorherigen Schleifendurchläufen (falls das gemeint ist) kannst Du in Variablen zwischenspeichern usw., alles kein Problem. Quote In der Tat, das ist bei Hashes so. Nach keys sortieren ist unproblematisch und würde im Beispiel auch zum richtigen Ergebnis führen. Wenn das in der Praxis nicht so sein sollte, kannst Du Tie::Hash::Sorted verwenden (habe ich selbst noch nie gebraucht) oder eben doch auf ein Array ausweichen (s.o.). Quote Hier ist ein AoAoH, also ein Array mit Arrayreferenzen mit Hashreferenzen gemeint. Was topeg zeigen wollte, ist, dass diese komplexe Datenstruktur automatisch aufgebaut wird, wenn Du nur einen Wert in dieser Struktur zuweist. Darunter versteht man Autovivikation (und das ist wirklich ein sehr tolles Feature von Perl). Die obige Zuweisung erzeugt eine Hashreferenz mit key = 'foo' und value = 'bar', die das erste Element einer Arrayreferenz ist, die das zweite Element des Arrays @array ist. Bleib dran, das wird schon. Es dauert natürlich ein bisschen, bis man komplexe Datenstrukturen mühelos im Griff hat. Grüße payx |