首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数组中存储文件::查找::name输出

如何在数组中存储文件::查找::name输出
EN

Stack Overflow用户
提问于 2018-04-06 02:44:39
回答 1查看 147关注 0票数 0

我已经成功地提取了我的.txt文件的文件名,但是我在数组中存储它时遇到了困难。

文件名:

sample1.txt sample2.txt sample3.txt

代码:

代码语言:javascript
复制
sub find_files {
    my $getfile = $File::Find::name;

    if ($getfile =~ m/txt$/) {
         my @sample;

         ($file, $path, $ext) = fileparse($getfile, qr/\..*/);

         push(@sample, "$file");
         print "$sample[0] ";
     }
}

预期产出:

sample1

输出:

sample1 sample2 sample3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-06 03:05:59

您正在将每个文件名存储在@sample中,但是该数组在太小的范围内声明,并且在if块的末尾被丢弃,就在print之后。

这应该会做得更好。它也更简洁,并确保找到的项目是文件,而不是目录

代码语言:javascript
复制
my @sample;

sub find_files {

    return unless -f and /\.txt\z/i;

    my ($file, $path, $ext) = fileparse($File::Find::name, qr/\.[^.]*\z/);

    push @sample, $file;
}

find(\&find_files, '/my/dir');
print "$_\n" for @sample;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49684462

复制
相关文章

相似问题

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