Find:File 在 Perl 中 - 通过符号链接目录搜索
Find:File in Perl - Search through symlink directory
有谁知道如何使 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 并打印出其中的每个文件?谁能告诉我该怎么做?
谢谢你,并致以最诚挚的问候。
亚历克斯
仔细查看 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);
有谁知道如何使 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 并打印出其中的每个文件?谁能告诉我该怎么做?
谢谢你,并致以最诚挚的问候。
亚历克斯
仔细查看 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);