0
我使用File::Find
來運行目錄樹,當我嘗試打開當前文件閱讀我得到No such file or directory
。目錄樹中的所有文件都會發生這種情況。打開錯誤 - 沒有這樣的文件或目錄
這是我在find()
使用子:
sub {
if (-d) {
return;
}
if (-f) {
my $file = ${File::Find::name};
open (my $IN, '<', '$file') or die "$!\n";
while (<$IN>) {
### Do some formatting.
}
close $IN;
}
}
它未能在該行:
open (my $IN, '<', '$file') or die "$!\n";
我認爲這是鏈接的問題,也許,但即使follow => 1
選項我得到這個錯誤。
順便說一句,沒有follow
我得到的錯誤是我找到的第一個目錄的第一個文件,並與它,錯誤是在最後一個目錄的最後一個文件(但在這兩種情況下,它是在第一個文件由File::Find
檢查)。
'open(my $ IN,'<','$ file')'試圖打開一個名爲'dollar-f-i-l-e'的文件,因爲單個tick不插入變量。正如你已經注意到的,你可以使用雙引號'''(內插)或者(甚至更好)不使用它們中的任何一個,並簡單地寫'$ file'。 – PerlDuck
@PerlDuck,你可以看到,我寫在我的回答:)另外,只需寫'$ file'更好,不能相信我錯過了這個選項! – yonyon100
@PerlDuck沒理由刪除它,沒關係 – yonyon100