我正在寻找一种在Perl中列出目录的普通文件的方法.仅文件,没有目录.
您需要使用opendir
,readdir
并closedir
与-f
文件测试运算符一起使用:
opendir(my $dh, $some_dir) || die $!; while(my $f = readdir $dh) { next unless (-f "$some_dir/$f"); print "$some_dir/$f\n"; } closedir $dh;
列出目录中所有文件的另一种方法是使用read_dir
CPAN模块File :: Slurp中的函数:
use strict; use warnings; use File::Slurp qw(read_dir); my $dir = './'; my @files = grep { -f } read_dir($dir);
它会为您执行opendir检查.请记住,它包含任何"隐藏"文件(以点开头的文件).这不会递归列出指定目录的子目录中的文件.