Schnaps: Fehler in Bubblesort

Beitrag lesen

Servus

Ich habe zum sortieren eines Mehrdimensionalem hash ein Bubblesort programmiert.
Nur leider sortiert dieses nicht komplett durch.

Die ersten werden alle richtig eingeordnet nur irgentwann ist es dann vorbei mit der Sortierung.

Zum Aufbau meines Hashes

Es ist wie eine Tabelle aufgebaut,

$neu_alignment{'$key'}{}    , der Key steht dann für die Namen die die einzelnden Zeilen haben.

$neu_alignment{'$key'}{$i} sind dann Buchstaben die zusammengesetzt den String mit dem namen $key ergeben.

Und in $neu_alignment{'quali'}{$i} ist immer die Qualität (ein numerischer wert) von der jeweiligen SPALTE des Hashes gespeichert. Nach diesem Wert soll das Hash  sortiert werden.

Ich wäre euch sehr Dankbar wenn ihr mal drüber schauen würdet, da ich so langsam den Überblick verliere.

hier mal mein Code

my $anzahl_saetze = (scalar keys %neu_alignment)-1;
my %temp;

foreach my $test(%neu_alignment){

for(my $j=$length; $j>0; $j--) {

if($neu_alignment{'quali'}{$j-1} < $neu_alignment{'quali'}{$j} ) {

while (($key) = each(%neu_alignment)) {
            $temp{$key} = $neu_alignment{$key}{$j-1};
            }

while (($key) = each(%neu_alignment)) {
            $neu_alignment{$key}{$j-1} = $neu_alignment{$key}{$j};
            }

while (($key) = each(%temp)) {
            $neu_alignment{$key}{$j} = $temp{$key};
            }
        }
    }
}