2016-06-16 5 views
0

Kann jemand Datei: Find kann durch Symlink-Verzeichnis suchen?Suchen: Datei in Perl - Suche durch Symlink-Verzeichnis

ich

/home/alex/mydir1 

und einen Symlink Verzeichnis innerhalb

ein echtes Verzeichnis haben, ist
/home/alex/mydir1/test -> ../mydir2 

Hier mein Code:

#!/depot/perl-5.8.3/bin/perl 
use strict; 
use File::Find qw(find); 

my $path = "/home/alex/mydir1"; 

find(\&Search,follow => 1, $path); 

sub Search{ 
    my $path = $File::Find::name; 
    print $path."\n"; 
} 

Und das Ergebnis ist:

/home/alex/mydir1 
/home/alex/mydir1/test 

Warum ist es nicht durch/home/alex/mydir2 suchen und drucken Sie alle Dateien im Inneren? Kann mir jemand zeigen, wie man das macht?

Vielen Dank und viele Grüße.

Alex

+0

'Verwendung Warnungen;' – toolic

+0

http://perldoc.perl.org/File/Find.html $ File :: Find :: Fullname – ssr1012

Antwort

4

Ein genauer Blick auf die Dokumentation für File::Find zeigt den Fehler: Sie haben bestanden einen Schlüssel-Wert-Liste von Parametern anstelle eines Referenz auf einen Hash von Parametern.

# Incorrect: looks like find(@params) 
# asks find to search the list of paths: 
# ('follow', 1, $path) 
find(\&Search,follow => 1, $path); 

# Correct: looks like find(\%params) 
find({ wanted => \&process, follow => 1 }, $path);