2013-06-01 85 views
1

我發現這個腳本,從目錄中讀取的遞歸和我有麻煩理解這行代碼:

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

所以,如果有人可以解釋這一點,並表示感謝。

+0

'perldoc perlop'是查找運營商和他們做什麼的地方。 – TLP

回答

6

它測試文件是否等於'。' (當前目錄)或'..'父目錄。當您搜索目錄樹但不想處理這些特殊文件時會使用這種類型的東西。

例子:

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

此線將檢查$file等於"."".."。這些是UNIX中的特殊文件名,分別表示「當前目錄」和「父目錄」。

+0

感謝您的幫助。 – Jacoberl

2

Perl中的readdir函數返回不僅在打開的目錄中的條目,同時也代表了當前打開的目錄本身的目錄:.,和父目錄:..。這些通常對目錄的遞歸操作不是很有用,並且在該代碼中專門處理。