打开错误 - 没有这样的文件或目录
问题描述:
我使用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
,并且显然没有这个名字的文件。
'open(my $ IN,' PerlDuck
@PerlDuck,你可以看到,我写在我的回答:)另外,只需写'$ file'更好,不能相信我错过了这个选项! – yonyon100
@PerlDuck没理由删除它,没关系 – yonyon100