我使用next if $file eq '.' $file eq '..';
在目錄和子目錄(除少數目錄之外)中查找文件並打開查找和替換文件。但是,當我有文件夾名稱中的點時,它認爲該文件夾是一個文件,並說無法打開。我使用-f篩選文件,但缺少顯示主文件夾中的文件。在文件夾和子文件夾中查找文件
是否有任何遞歸的方式來找到文件夾和文件,即使它有點。
opendir my $dh, $folder or die "can't open the directory: $!";
while (defined(my $file = readdir($dh))) {
chomp $file;
next if $file eq '.' $file eq '..';
{
if ($file ne 'fp') {
print "$folder\\$file";
if ($file =~ m/(.[^\.]*)\.([^.]+$)/) {
...
}
}
}
}
你忘了''||(或)在未來'如果$文件EQ '' $ file eq'..';'?它應該是'next if($ file eq'。'|| $ file eq'..');'(儘管這不能解決遞歸問題)。 – PerlDuck
'chomp $ file;'是不需要的。 'readdir'的結果沒有尾隨換行符。 – shawnhcorey