我正在编写一个Perl脚本,它使用以下方法迭代目录及其子目录中的文件名:
find(\&getFile, $mainDir);
sub getFile {
my $file_dir = $File::Find::name;
return unless -f $file_dir; # return if its a folder
}
文件结构如下所示:
main/classes/pages/filename.php
但是由于版本控制,每个文件夹和子文件夹都有一个隐藏的.svn
目录,其中包含.svn-base
后缀的每个文件的副本:
main/.svn/classes/pages/filename.php.svn-base
我想知道是否有一个类似我以前使用的返回语句:
return if ($file_dir eq "something here");
跳过所有.svn
个文件夹,找不到带有.svn-base
后缀的文件名。我一直在摆弄正则表达式,并且在没有太多运气的情况下搜索了几个小时。我几天只使用perl。
答案 0 :(得分:4)
您可以使用
return if ($file_dir !~ /\.svn/);
(!~
相当于!($file_dir =~ /\.svn/)
。=~
运算符将变量与模式进行比较。