1

我发现这个脚本从目录中递归读取,我很难理解这行代码:

if ($file eq '.' || $file eq '..')

所以如果有人能解释一下,谢谢。

4

3 回答 3

9

此行检查$file等于"." ".."。这些是 UNIX 中的特殊文件名,分别表示“当前目录”和“父目录”。

于 2013-06-01T21:07:15.337 回答
7

它测试文件是否等于“。” (当前目录)或“..”父目录。当您搜索目录树但不想处理这些特殊文件时,会使用这种东西。

例子:

For each file in SomeDirectory:
  if file is current directory, '.', or parent directory ,'..'
    skip
  do something with file
EndFor
于 2013-06-01T21:07:42.563 回答
2

Perl 中的readdir函数不仅返回打开目录中的条目,还返回代表当前打开目录本身.的目录: 和父目录:..。这些对于目录上的递归操作通常没有用,并且在该代码中专门处理。

于 2013-06-01T21:09:23.700 回答