Michael Schröpl: Sortierproblem

Beitrag lesen

@daten = sort {x($a) <=> x($b)} @daten;

sub x
{
     ($nicht1,$nicht2,$nicht3,$wichtig,..) = split(/,/,$daten[ ??? ]);
     $a = $wichtig;
}

Versteh ich nicht so recht!?   ;-/    *grübel

Dabei bist Du gar nicht weit weg. Nur zwei Schritte:

1. Die Funktion wird von sort() mit einem (skalaren) Parameter aufgerufen. Auf den mußt Du zugreifen, nicht auf @daten.

2. Und ihr Ergebnis muß sie nicht an $a zuweisen (eine solche Variable existiert m. E. gar nicht - in welchem scope auch? Das ist nur eine symbolische Notation), sondern mit "return $wichtig;" dem Aufrufer zurückliefern. Denn die sort()-Funktion will das Ergebnis Deiner Funktion ja dann zum Vergleichen verwenden, während sie sortiert.

Und - tut es?