我试图遍历Perl当前目录的所有子目录,并从这些文件获取数据。我使用grep获取给定目录中的所有文件和文件夹的列表,但是我不知道返回的值是一个文件夹名称,哪个是没有文件扩展名的文件。
我怎么能说出差异?
解决方法
您可以使用-d文件测试运算符来检查是否有目录。这里有一些常用的文件测试运算符
-e File exists. -z File has zero size (is empty). -s File has nonzero size (returns size in bytes). -f File is a plain file. -d File is a directory. -l File is a symbolic link.
见perlfunc manual page for more
另外,尝试使用可以为您递归目录的File::Find。这是一个寻找目录的示例….
sub wanted { if (-d) { print $File::Find::name." is a directory\n"; } } find(\&wanted,$mydir);