打开错误 - 没有这样的文件或目录

问题描述:

我使用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行中的双引号替换单引号,或者甚至更好,不使用任何引号,这样做的诀窍。字符串文字'$file'产生字符串$file,并且显然没有这个名字的文件。

+5

'open(my $ IN,' PerlDuck

+0

@PerlDuck,你可以看到,我写在我的回答:)另外,只需写'$ file'更好,不能相信我错过了这个选项! – yonyon100

+0

@PerlDuck没理由删除它,没关系 – yonyon100