查找具有特定扩展名的文件名

-1 directory perl

我要搜索文件名的目录与任何以下扩展名:.srt,.sub,.txt,.ass,.ssa.

我很感激任何意见.

cho*_*oba 5

最简单的方法是使用glob:

chdir $directory;
my @files = glob '*.srt *.sub *.txt *.ass *.ssa';
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用readdir,但是你必须自己过滤文件,例如使用grep:

open my $dir_handle, $directory or die $!;
my @files = grep /\.(?:srt|sub|txt|ass|ssa)\z/, readdir $dir_handle;
Run Code Online (Sandbox Code Playgroud)