@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?