my @hex_locations = ("$FindBin::Bin/../../../project/platform-fsm9900_cdp-full/build-target/gnss-1.0.0",
"$FindBin::Bin/../../../project/platform-fsm9900_cdp-base/build-target/gnss-1.0.0"); 与这2行不同,我可以用通配符(如下面的通配符)在单行中指定它吗?"$FindBin::Bin/../../../project/platform-fsm9900_cdp-*/build-target/gnss-1.0.0“
my @hex_dep_files;
sub find_dep_files {
my $F = $File::Find::name;
if ($F =~ /.d$/ ) {
push(@hex_dep_files,$F)
}
}
for my $loc (@hex_locations) {
find({ wanted => \&find_dep_files, no_chdir=>1}, $loc);
}使用上面的for循环,我从@hex_locations中获取所有*.d文件,我可以用单个函数来实现它而不是调用一个单独的函数"find_dep_files",我不想调用与这个for循环不同的函数,所以我不需要将数组@hex_dep_files定义为全局函数。
谢谢你的帮助。
发布于 2013-12-04 17:38:15
来回答实际的问题。
my @hex_dep_files;
for my $loc (@hex_locations) {
find({
no_chdir => 1,
wanted => sub {
my $F = $File::Find::name;
return if $F !~ /.d$/;
push @hex_dep_files, $F;
},
}, $loc);
}或
my @hex_dep_files;
find({
no_chdir => 1,
wanted => sub {
my $F = $File::Find::name;
return if $F !~ /.d$/;
push @hex_dep_files, $F;
},
}, @hex_locations);发布于 2013-12-04 17:30:56
你就不能用格罗布吗
my @files = </path/to/files/*.extension>;https://stackoverflow.com/questions/20381945
复制相似问题