Katharina: nach Datum sortieren

Hilfe, bin absoluter Anfänger und soll in einem Verzeichnis ASC-Files auslesen und dann nach Datum sortieren.
Schaffe es aber nur alphabetisch! Hab mich auch schon im Internet umgesehen und nichts entsprechendes gefunden.
Wer kann mir hier helfen?

Hier ein Auszug aus dem Script:
Zuerst werden die Files im jeweiligen Verzeichnis ausgelesen.
Dann das Verzeichnis angewählt, dort sollen dann die ASC files nach Datum sortiert werden - bloß wie?

sub processfiles{
  my $dir="/home/vservers/www.xxx.at/yyy/reports/$art";
  my $httpdir="http://www.xxx.at/yyy/reports/$art";
  chdir($dir);
  my @sortfiles = <*.ASC>;
  my $filename="";

Vielen Dank!

  1. Hi,

    Du musst hierfür die Attribute der jeweiligen Datei auslesen und diese dann sortieren. Ich bin leider zur Zeit auf einer Schulung und kann Dir den Quellcode gerne heute Abend per Mail senden. Wenn ja, dann schreib mir einfach unter wmg@fanprojekt.de, damit ich das nicht vergesse!

    Gruß,

    Sven

    1. Hi,

      ich habe auch etwas auf der Selfhtml-Seite gefunden:

      my @Info = stat($Datei);

      print "Content-type: text/html\n\n";
      print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
      "\n";
      print "<html><head><title>Test-Ausgabe</title></head><body><pre>\n";
      print "<b>Datei:</b>                      $Datei\n";
      print "<b>Geraetetenummer:</b>            $Info[0]\n";
      print "<b>Inode-Nummer:</b>               $Info[1]\n";
      printf "<b>Zugriffsrechte:</b>             %o\n", $Info[2];
      print "<b>Anzahl Links auf Datei:</b>     $Info[3]\n";
      print "<b>User-ID des Besitzers:</b>      $Info[4]\n";
      print "<b>Gruppen-ID des Besitzers:</b>   $Info[5]\n";
      print "<b>Raw-Geraetenummer:</b>          $Info[6]\n";
      print "<b>Dateigroesse:</b>               $Info[7]\n";
      print "<b>Letzte Zugriffszeit:</b>        $Info[8]\n";
      print "<b>Letzte Aenderungsszeit:</b>     $Info[9]\n";
      print "<b>Inode-Aenderungsszeit:</b>      $Info[10]\n";
      print "<b>Ideale Blockgroesse:</b>        $Info[11]\n";
      print "<b>Anzahl belegter Blocks:</b>     $Info[12]\n";
      print "</pre></body></html>\n";

      Jetzt musst Du nur noch das jeweilige Datum in ein zweidimensionales Array bringen und sortieren.

      Gruß,

      Sven

      1. Super,
        vielen Dank - werde ich ausprobieren!
        Gruß, Katharina

        Hi,

        ich habe auch etwas auf der Selfhtml-Seite gefunden:

        my @Info = stat($Datei);

        print "Content-type: text/html\n\n";
        print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
        "\n";
        print "<html><head><title>Test-Ausgabe</title></head><body><pre>\n";
        print "<b>Datei:</b>                      $Datei\n";
        print "<b>Geraetetenummer:</b>            $Info[0]\n";
        print "<b>Inode-Nummer:</b>               $Info[1]\n";
        printf "<b>Zugriffsrechte:</b>             %o\n", $Info[2];
        print "<b>Anzahl Links auf Datei:</b>     $Info[3]\n";
        print "<b>User-ID des Besitzers:</b>      $Info[4]\n";
        print "<b>Gruppen-ID des Besitzers:</b>   $Info[5]\n";
        print "<b>Raw-Geraetenummer:</b>          $Info[6]\n";
        print "<b>Dateigroesse:</b>               $Info[7]\n";
        print "<b>Letzte Zugriffszeit:</b>        $Info[8]\n";
        print "<b>Letzte Aenderungsszeit:</b>     $Info[9]\n";
        print "<b>Inode-Aenderungsszeit:</b>      $Info[10]\n";
        print "<b>Ideale Blockgroesse:</b>        $Info[11]\n";
        print "<b>Anzahl belegter Blocks:</b>     $Info[12]\n";
        print "</pre></body></html>\n";

        Jetzt musst Du nur noch das jeweilige Datum in ein zweidimensionales Array bringen und sortieren.

        Gruß,

        Sven

  2. Hallo,

    my @sortfiles = <*.ASC>;

    So habe ich das auch noch nie gesehen, aber es funktioniert;-) Man lernt eben nie aus.

    Um dieses Array nach Datum zu sortieren, solltest Du zum einen
      perldoc -q "How do I sort an array by (anything)?"
    und dann auch
       perldoc -f -X
    bzw.
      perldoc -f stat
    durchlesen.

    Ersteres gibt Dir beispiele für den Umgang mit sort, letzere geben Dir aufschluß darüber, wie man das Datum einer Datei abfragen kann. Aber beachte, daß es da 3 Datumswerte gibt, Jeweils einen für Erzeugungs-, Modifikations- und Zugriffsdatum. Du wirst höchstwahrscheinlich das Modifikationsdatum vergleichen wollen.
    Alle Datumswerte sind üblicherweise die Sekunden seit 'the epoc'.

    Grüße
      Klaus