什么是($ file eq'。'|| $ file eq'..')?

时间:2013-06-01 21:05:31

标签: perl perl-data-structures

我发现这个脚本以递归方式从目录中读取,我在理解这行代码时遇到了麻烦:

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

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

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:6)

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

示例:

For each file in SomeDirectory:
  if file is current directory, '.', or parent directory ,'..'
    skip
  do something with file
EndFor

答案 2 :(得分:2)

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