0

有谁知道如何使 File:Find 可以搜索符号链接目录?

我有一个真实的目录

/home/alex/mydir1 

和里面的符号链接目录

/home/alex/mydir1/test -> ../mydir2

这是我的代码:

#!/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";
}

结果是:

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

为什么不搜索 /home/alex/mydir2 并打印出里面的每个文件?谁能告诉我该怎么做?

感谢你并致以真诚的问候。

亚历克斯

4

1 回答 1

5

仔细查看File::Find的文档会发现错误:您传递了参数的键值列表,而不是对参数散列的引用

# 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);
于 2016-06-16T13:25:56.043 回答