hi Roman,
ich möchte einen array (tabelle) nach einer vorgegebenen Spalte sortieren. Ich will dazu die "Schwartzsche Transformation" nutzen. Rolf Post und Eike Grote haben darüber etwas geschrieben
( http://i-netlab.de/cgi-bin/index.cgi?display=40.13
http://perl-seiten.bei.t-online.de/perl/perl_schw.htmldas script unten funct. und zeig die transf.
ich will das ganze um 3 aufgaben erweitern:
1) $sort gibt vor nach welcher spalte sortiert werden soll
(Spaltentrenner ist ein leerzeichen)
2) $sortart gibt vor ob alpha-oder nummerrisch sortiert werden soll
3) wenn $such definiert ist sollen nur die zeilen sortiert werden
die $such enthalten ansonsten sollen alle sortiert werden.
1. zum sortieren nimm am besten den <=> als Vergl. Operator.
- das sortiert numerisch
- zum sortieren nach ascii-order nimm die Werte in die ord()funktion, dann kann auch ascii mit <=> sortiert werden
2. die sortierhilfe baust du so dass ein parameter übergeben wird welcher sagt nach welchem wert sort. werden soll
@a = sort{ sorthilfe($a,$x) <=> sortierhilfe($a,$x)}@unsorted_a;
ein Beispiel als CGI findest du hier
http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?dis.10.20
Rolf