我发现这个脚本以递归方式从目录中读取,我在理解这行代码时遇到了麻烦:
if ($file eq '.' || $file eq '..')
所以,如果有人能解释一下这一点,谢谢。
答案 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
函数不仅返回打开的目录中的条目,还返回表示当前打开的目录本身的目录:.
和父目录:..
。这些对目录的递归操作通常不常用,并且在该代码中专门处理。