首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dir位置使用通配符并找到所有扩展名为

在dir位置使用通配符并找到所有扩展名为
EN

Stack Overflow用户
提问于 2013-12-04 17:28:19
回答 2查看 1.2K关注 0票数 1
代码语言:javascript
复制
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“

代码语言:javascript
复制
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定义为全局函数。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-04 17:38:15

来回答实际的问题。

代码语言:javascript
复制
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);
}

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2013-12-04 17:30:56

你就不能用格罗布

代码语言:javascript
复制
my @files = </path/to/files/*.extension>;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20381945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档