gpt4 book ai didi

perl - 如何使用 Perl 列出目录中的所有文件?

转载 作者:行者123 更新时间:2023-12-04 00:03:13 24 4
gpt4 key购买 nike

我通常使用类似的东西

my $dir="/path/to/dir";
opendir(DIR, $dir) or die "can't open $dir: $!";
my @files = readdir DIR;
closedir DIR;

或者有时我使用 glob ,但无论如何,我总是需要添加一两行来过滤掉 ...这很烦人。
你通常如何处理这个常见的任务?

最佳答案

我通常会使用 glob方法:

for my $file (glob "$dir/*") {
#do stuff with $file
}

除非目录中有很多文件,否则这可以正常工作。在这些情况下,您必须切换回 readdirwhile循环(将 readdir 放在列表上下文中与 glob 一样糟糕):
open my $dh, $dir
or die "could not open $dir: $!";

while (my $file = readdir $dh) {
next if $file =~ /^[.]/;
#do stuff with $file
}

但通常,如果我正在读取目录中的一堆文件,我想以递归方式读取它们。在这些情况下,我使用 File::Find :
use File::Find;

find sub {
return if /^[.]/;
#do stuff with $_ or $File::Find::name
}, $dir;

关于perl - 如何使用 Perl 列出目录中的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3772001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com