Perl问题:
#!/usr/bin/perl
use File::Find;
#Find files
find(\&wanted, $dir);
sub wanted { #Do something }
#Done going through all files, do below:
other stuff { }
所以,我基本上想要解析目录并查找某些类型的文件。我可以使用File :: Find成功地做到这一点。但是,我的下一步是,一旦我完成了搜索文件,我就想进行下一个过程。
问题是,无论如何,我在子想要{#Do something}后执行,每次都执行,找不到我想要的文件!我知道这对程序来说是合乎逻辑的。但是,你能否告诉我为实现这一目标需要做些什么:
1]查找文件:使用> sub want {#Do something} 2]虽然没有更多要搜索的文件:>做其他事情{}
谢谢!
答案 0 :(得分:1)
更新的答案(在OP澄清他只是想在find()
完成搜索后运行一些代码之后):
由于find()
不是并行搜索,因此只需在完成所有搜索后返回。因此,您不需要做任何特殊的事情来实现您的目标:
find(\&wanted, @directories_to_search);
# Here be code that runs after search completes.
原始回答
您可以在想要的子例程中设置文件标记:
my $files_not_found = 1;
find(\&wanted, @directories_to_search);
sub wanted { @args=@_; $files_not_found = 0; }
if ($files_not_found) {
print "No files found!\n";
}
# Here you do things after find is finished.