我有一个Perl脚本,它使用File :: Next :: files遍历目录层次结构.它只会返回以".avi",".flv",".mp3",".mp4"和".wmv"结尾的脚本文件.它还将跳过以下子目录:".snvn"和以".frames"结尾的任何子目录.这是在指定的file_filter和descend_filter下面的子程序.
my $iter = File::Next::files(
{ file_filter => \&file_filter, descend_filter => \&descend_filter },
$directory );
sub file_filter {
# Called from File::Next:files.
# Only select video files that end with the following extensions.
/.(avi|flv|mp3|mp4|wmv)$/
}
sub descend_filter {
# Called from File::Next:files.
# Skip subfolders that either end in ".frames" or are named the following:
$File::Next::dir !~ /.frames$|^.svn$/
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是将允许的文件扩展名和不允许的子目录名放在配置文件中,以便可以即时更新它们.
我想知道的是如何根据配置文件中的参数编写子程序来构建正则表达式结构?
/.(avi|flv|mp3|mp4|wmv)$/
$File::Next::dir !~ /.frames$|^.svn$/
Run Code Online (Sandbox Code Playgroud)