Jonas: Array mit mehreren Feldern nach Datum sortieren

Hi

Ich weiss, das Thema "Sortieren von Arrays" ist hier schon oft angesprochen worden. Mein Problem konnte ich aber bisher niergends entdecken...

Zum Thema:

Ich habe eine Text-Datei, die als Datenbank dient. Der Aufbau ist der folgende (es handelt sich um eine Game-DB):

name|nummer|wertung|releasedatum|genre

Also zum Beispiel:
Spiel1|1|87|24.11.04|shooter
Spiel2|2|56|12.01.04|sport
...etc

Nun müsste ich das Ganze file nach dem Einlesen in einen Array nach DATUM sortieren könnnen. Die Frage, die sich mir stellt ist, wie das wohl am schnellsten gehen könnte.

Ich hoffe auf gute Ideen ;)

Gruss

jonas

  1. Hi,

    Ich weiss, das Thema "Sortieren von Arrays" ist hier schon oft angesprochen worden. Mein Problem konnte ich aber bisher niergends entdecken...

    auch nicht in perldoc perlfaq4, "How do I sort an array by (anything)?"?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Ich weiss, das Thema "Sortieren von Arrays" ist hier schon oft angesprochen worden. Mein Problem konnte ich aber bisher niergends entdecken...

      auch nicht in perldoc perlfaq4, "How do I sort an array by (anything)?"?

      Cheatah

      hmmm... sorry, aber da sehen ich irgendwie keine Möglichkeit, für mein Problem...

  2. Hi

    Also zum Beispiel:
    Spiel1|1|87|24.11.04|shooter
    Spiel2|2|56|12.01.04|sport
    ...etc

    Nach DATUM like '24.11.04' sortieren? => Umrechnen in seconds since the begin of the epoch ODER gleich in diesem Format Speichern ;-)

    Sortierbeispiel

    @unsort = (
     ['Spiel1','1','87','123456789','shooter'],
     ['Spiel2','2','56','987654321','sport'],
    );

    @sortlist = sort{ hx($a) <=> hx($b) }@unsortlist;

    sub hx{
     my $s = shift; # arrayElement
     return $s->[3]; # wenn Spalte 3 das Datum ist
    }

    --Rolf