Hash nach erstem Element des Arrays (=Value) sortieren
Vaido
- perl
Hallo zusammen.
ich habe folgendes Problem:
Ich habe einen Hash. Dieser enthält als Keys einfache Strings und als Values jeweils ein Array, welches wiederum fünf Werte enthält, also z.B.
"Schlüssel_1 => @Array(1,4,5,3,5)
"Schlüssel_2 => @Array(3,5,6,1,52)
Ich kann mir mein Hash ohne weiteres ausgeben lassen, inkl. desjeweils zugehörigen Array-Values.
Nun möchte ich den Hash so ausgeben, dass die Keys noch dem ersten Element des Arrays sortiert werden.
Weiß jemand wie das gehen könnte?
Danke im Voraus!
Ich habe einen Hash. Dieser enthält als Keys einfache Strings und als Values jeweils ein Array, welches wiederum fünf Werte enthält, also z.B.
"Schlüssel_1 => @Array(1,4,5,3,5)
"Schlüssel_2 => @Array(3,5,6,1,52)
Der Wert eines Hashelements ist ein Scalar oder eine Referenz.
also
my %hash=(
key=>[1,2,3],
);
Ich versuche zu verstehen, was
@Array(1,4,5,3,5)
sein könnte
Ich kann mir mein Hash ohne weiteres ausgeben lassen, inkl. desjeweils zugehörigen Array-Values.
Nun möchte ich den Hash so ausgeben, dass die Keys noch dem ersten Element des Arrays sortiert werden.
Weiß jemand wie das gehen könnte?
# arrayref->Dereferenzierung
sort { $hash{$a}->[0] <=> $hash{$b}->[0] } keys %hash;
# equivalente Schreibweie, Dereferenzierung des Arrays implizit.
sort { $hash{$a}[0] <=> $hash{$b}[0] } keys %hash;
mfg Beat
Danke! Das hat funktioniert!