使用File :: Find忽略隐藏文件

Rya*_*urn 2 perl find

我正在使用file::find一个目录结构并打印出来,但我在排除隐藏文件时遇到问题.这是我到目前为止:

find(\&todo, $start_dir);
sub todo 
{
  if ($_ =~ /^./) 
  {
     print "hidden file $_\n";
  }
  else
  {
    if (-f $_) #check for file
    {
      file;
    }
    elsif (-d $_) #check for directory
    {
      directory($File::Find::dir);
    }
    else
    {
       print "ERROR: $_\n";
    }
  }
}        
Run Code Online (Sandbox Code Playgroud)

如果我删除了if ($_ =~ /^./)检查,文件和目录工作正常,但添加它将所有内容打印为隐藏文件.如您所见,我只需要这个就可以在unix上运行.谁能指出我正确的方向?

编辑:我忘记了前面的反斜杠. - 应该是if($ _ =〜/^./),但find()是否有默认方式忽略隐藏文件/目录?谢谢!

gee*_*aur 8

.正则表达式匹配任何字符; 用于\.匹配文字..你可能应该了解正则表达式.