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

时间:2016-11-20 15:36:37

标签: perl file debugging

我使用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)检查的第一个文件上。

1 个答案:

答案 0 :(得分:2)

问题解决了。显然,用open行中的双引号替换单引号,甚至更好,不使用任何引号,就可以了。字符串文字'$file'生成字符串$file,并且显然没有具有此名称的文件。