Rudi: Maximal 10

Hi an alle. Ich bin noch im Anfangsstadium und ich möchte hinkriegen das auch mit der "größe der Datei" max. 10 ausgegeben werden. Helft mir dummerchen mal bitte!

#!/usr/bin/perl -w

use File::Find;

foreach $arg (@ARGV) {                                # Alle angegebenen Verzeichnise durchlaufen
    File::Find::find(&fc, $arg);                     # und %Filesbydate aufbauen
    }
$maxcount = {0,10};                                       # Maximal 10 Dateien ausgeben
                                                      # Auswertung : Nach letztem Datum sortieren

hash:foreach $date (sort { $b <=> $a  }  keys %Filesbydate)
{

# Listen von Einträgen gleichen Datums

$timestr = localtime($date);

foreach $file (@{$Filesbydate{$date}})

{
                                                      # Ausgabe mit Datum
       print "$file(", $timestr, ")\n";

last hash unless $maxcount--;
  }

}

sub fc {
     return unless -f;                                # keine Directories

my $filedate = (stat($_))[9];

my $filesize = (stat($_))[7];
      print "$_ $filesize\n";
            # Datum noch nicht belegt:
                                                      # Neue Listenreferenz
    $Filesbydate{$filedate} = [] unless
                                 exists $Filesbydate{$filedate};
                                                      # Eintrag in Liste aufnehmen
     push(@{$Filesbydate{$filedate}}, "$File::Find::dir/$_");
     }

  1. Hi,

    $maxcount = {0,10};          # Maximal 10 Dateien ausgeben

    huch - was soll das werden?

    $maxcount enthält nun eine Referenz auf einen hash,
    der einen Abbildung von 0 nach 10 enthält!

    Das willst Du doch nicht wirklich, denn ...

    last hash unless $maxcount--;

    spätestens hier bist Du der Meinung, in $maxcount eine Zahl
    abgelegt zu haben.

    Viele Grüße
          Michael