代码之家  ›  专栏  ›  技术社区  ›  Vijay

为什么Perl的open找不到我的文件?

  •  3
  • Vijay  · 技术社区  · 14 年前

    我对Perl编码是个新手。 我在执行一个小脚本时遇到了一个问题: open 找不到我作为论点提供的文件。

    文件可用:

     ls -l DLmissing_months.sql
    -rwxr-xr-x   1 tlmwrk61 aimsys      2842 May 16 09:44 DLmissing_months.sql
    

    我的Perl脚本:

    #!/usr/local/bin/perl
    
    use strict;
    use warnings;
    
    my $this_line = "";
    my $do_next = 0;
    my $file_name = $ARGV[0];
    open( my $fh, '<', '$file_name')
        or die "Error opening file - $!\n";
    close($fh);
    

    执行Perl脚本:

    > new.pl DLmissing_months.sql
    Error opening file - No such file or directory
    

    我的Perl脚本有什么问题?

    2 回复  |  直到 10 年前
        1
  •  11
  •   Marcelo Cantos    14 年前

    单引号不插入。而不是打开 DLmissing_months.sql ,您试图打开一个名为 $file_name . 使用双引号使事物内插。在这种情况下,您可以单独使用变量:

    open( my $fh, '<', $file_name)
    
        2
  •  8
  •   Quentin    14 年前

    你放了 $file_name 在单引号内。单引号是非内插的,因此您试图读取名为“$file_name”的文件,而不是名为“存储在$file_name scalar中的任何文件”。

    删除引号。