Philipp: Sortieren klappt nicht immer

Hallo,
ich habe mit folgendem Code das Problem, dass er nicht immer sortiert, je nachdem nach was ich sortiere. Im Archiv habe ich speziell dazu nichts gefunden.

Ich komme einfach nicht drauf, was nicht stimmt. Bitte helft mir.

Ich lese aus einer Datei die Zeilen in ein Array. Die Zeilen enthalten durch Semikolon getrennte Werte. Ein Teil der Werte ist nicht angegeben.
@daten[10] könnte beispielsweise so aussehen: Wert1;Wert2;Wert3;;;;;Wert8
Die ersten 3 Werte sind immer vorhanden, aber nicht unbedingt die folgenden. Wenn ich nach der 3 Spalte sortiere funktioniert alles einwandfrei. Wenn ich nach der 6 Spalte sortiert er mir etwas zusammen, dass ich gar nicht nachvollziehen kann.

Zuerst dachte ich, dass das Problem in den leeren Werten liegt, aber die Aufspaltung der Zeilen funktioniert einwandfrei und die Tabelle kommt auch so wie sie soll raus.

@sortiert = sort { (split(/;/, $a))[$sortieroption] cmp (split(/;/, $b))[$sortieroption] } @daten;

print "<table border=1>";
foreach $zeile (@sortiert) {
  @werte = split (/;/,$zeile);
  print "<tr>";
  foreach $eintrag (@werte) {
    print "<td>",$eintrag,"</td>";
  }
  print "</tr>\n";
}
print "</table>";

Danke
Philipp

  1. Hi,

    Wenn ich nach der 6 Spalte sortiert er mir etwas zusammen, dass ich gar nicht nachvollziehen kann.

    Beispiel? Nenn doch mal ein @daten (möglichst nicht viel mehr als 10 Zeilen ;-)) mit dem sich ergebenden @sortiert.

    Cheatah

    1. Hallo Cheatah

      Danke für das nachschauen auf der Adresse die ich Dir gemailt habe. Du hast Recht, es funktioniert. Warum ist mir allerdings grad noch schleierhaft, da ich eigentlich nichts verändert habe, ausser einem Kommentarblock zu entfernen. Irgendwo werde ich wohl doch etwas korrigiert haben.

      Danke nochmals für deine Bemühungen

      Gruss
      Philipp :)