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-manual.pl
#!/usr/local/bin/perl -w
# traverse-dir-manual.pl -- Rekursives Durchlaufen eines Directory

use Symbol;                        # wg. gensym

my $top   = shift;                 # Ab hier starten
my $check = \&wanted;              # Benutzerdefinierte Funktion
traverse($top);                    # Erster Aufruf

sub traverse {
    my $localtop = shift;          # Parameter: Ab hier...
    my $dirh     = gensym;         # Lokales Directoryhandle
    my $fname;
    
    unless (opendir($dirh, $localtop)) {
    warn "Err: $localtop ($!)\n";
    return;
    }
    
    while (defined ($fname = readdir($dirh))) {
        # . und .. sollen uebersprungen werden:
        next if $fname eq '.' or $fname eq '..';

    # Eigentlicher Dateiname:
    my $pname = $localtop . '/' . $fname;
    
    # Benutzerdefinierte Funktion aufrufen
    &{$check}($pname);
    
    # Bei Verzeichnissen rufen wir uns selbst rekursiv auf.
    traverse($pname) if -d $pname;
    }

    closedir($dirh);
}

# Dies kann beliebig geaendert werden...
sub wanted {
    my $path = shift;
    print "Subdir: $path\n" if -d $path;
}
   

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

[Alte Quelle]


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