Philipp: Sortieren klappt nicht immer

Beitrag lesen

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