www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

traverse-dir-module.pl
#!/usr/local/bin/perl
# traverse-dir-module.pl -- Rekursives Traversieren mit File::Find
#                     Finde groesste und juengste Datei

use File::Find;                              # Standardmodul

my @biggest  = ( '', 0 );
my @youngest = ( '', 0 );
@ARGV = "." unless defined @ARGV;

find(\&wanted, @ARGV);          # Rekursiver Alg.

print "Biggest  File: ", join(' ', @biggest), "\n";
print "Youngest File: ", $youngest[0], " ",
                         scalar localtime($youngest[1]), "\n";

# Diese Funktion wird fuer jeden Verzeichniseintrag aufgerufen.
# Der Name des aktuellen Verzeichnisses
# befindet sich in $File::Find::dir.
# Der Name der aktuellen Datei
# in diesem Verzeichnis liegt in $_.
# Wir sind hier implizit chdir($File::Find::dir) worden,
# so dass wir auf $_ direkt zugreifen koennen.
sub wanted {
    # $File::Find::name ist "$File::Find::dir/$_"
    print STDERR "Examining: ", $File::Find::name, "\n" if $^W;

    return unless -f;    # raus, wenn wir keine echte Datei haben

    # Ermittle groesste und juengste Datei bisher
    my ($size, $date) = (stat(_))[7,9];
    @biggest  = ( $File::Find::name, $size )
    if $size > $biggest[1];
    @youngest = ( $File::Find::name, $date )
        if $date > $youngest[1];
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:56:09 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo