如何根据文件扩展名过滤文件名?

Nee*_*eel 4 perl list filter

以下脚本存储阵列中的所有文件和目录@file_list.

我如何只筛选具有.lt6扩展名的文件,而不是其他文件?

opendir (CURRDIR, $localdir);
@file_list = grep !/^\.\.?$/, readdir CURRDIR;
print STDOUT "Found Files: @file_list\n";
Run Code Online (Sandbox Code Playgroud)

干杯

Jim*_*nts 9

试试这个:

grep(/\.lt6$/i, readdir(CURRDIR))
Run Code Online (Sandbox Code Playgroud)

我已经多次使用它了.虽然现在我更喜欢使用File :: Next来做这件事.

例:

use File::Next;

my $iter = File::Next::files( { file_filter => sub { /\.lt6$/ } }, $localdir )

while ( defined ( my $file = $iter->() ) ) {
    print $file, "\n";
}
Run Code Online (Sandbox Code Playgroud)