LanX: Sortiere Array of Hashes nach bestimmten Hashvalue

Beitrag lesen

Hallo Leute

mal wieder ne Anfängerfrage
(Hi nd, Hi Chea*was auch mimmerdas bedeutet*tah)

mit

sort sortfunction @array

kann man bekanntermaßen ein Array nach eigenen Kriterien durchsuchen,
dabei werden sortfunction() beliebige $a,$b übergeben und der returnwert
entscheidet, ob gleich kleiner größer.

OK

Aber was is wenn ich ein Array von Hashes habe und nach einem bestimmten
Hashvalue sortieren will?

z.B. array[$i]{'key1'}="value" ich will das array alphabetisch nach dem
Inhalt bei 'key1' sortieren!

Ich habe versucht die sortfunction entsprechend zu schreiben, versage
aber irgendwie beim klammern ;)

sowas wie

{
 %{$a}{'key1'} cmp %{$b}{'key1'}
}

klappt nicht! ... 'Can't use subscript on hash deref ...'

dafüer klappt mittlerweile [1]
  {
    %ha=%$a;%hb=%$b;
    $ha{"key1"} cmp $hb{"key1"};
  }

Kann mir jmd bitte bitte erklären wieso?

Tschuess Rolf

[1] als ich dieses Posting begann hats noch nicht gefunkt ;)