Bernhard Peissl: Array auf einen Hash zuweisen

Beitrag lesen

Hallo,

Du solltest wohl Deinen Ansatz etwas ummodeln. Z.B. so:
Ein Hash %bestellungen mit den namen als Key. Heraus kommt ein Array sämtlicher Bestellungen. Jede einzelne Bestellung ist ein Hash mit je einem Eintrage pro Produkt, Nr und Menge.

Ich weiss nicht, ob ich das richtig geschnallt hab: Wenn jetzt ein Kunde 10 Produkte bestellt, muss ich zehnmal die ganzen Daten zur Person mitspeichern, aber genau das wollte ich ja verhindern. Sowas ähnliches hab ich mir auch schon überlegt.

Zugriff dann wie folgt:
foreach my $bestellung (@{$bestellungen{$name}}) {
    print "Produkt: $bestellung->{'produkt'}\n";
    print "Nr: $bestellung->{'nr'}\n";
    print "Menge: $bestellung->{'menge'}\n";
}

puuhhh, ... starker Toback !!

Das ganze aus Deinen "Spaltenarrays" zu erzeugen ist etwas aufwendiger. Sinnvoller ist ist wohl beim einlesen der Datensätze die Daten gleich richtig zu verpacken:
push(@{$bestellungen{$name}}, {'produkt' => $produkt, 'nr' => $nr, 'menge' => $menge});

<uff>Also das sieht so kompliziert aus, ich fürchte dafür hab ich zu wenig Ahnung von PERL und Hashes.</uff>

Trotzdem danke,
Bernhard