rolfrost: array sortieren / Schwartzsche Transformation

Beitrag lesen

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.html

das 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