为什么Perl不能打开我的文件?

时间:2010-05-17 10:01:09

标签: perl file-io

我是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 个答案:

答案 0 :(得分:11)

单引号不进行插值。您正在尝试打开名为DLmissing_months.sql的文件,而不是打开$file_name。使用双引号进行插值。在这种情况下,您可以单独使用该变量:

open( my $fh, '<', $file_name)

答案 1 :(得分:8)

您已将$file_name置于单引号内。单引号是非插值的,因此您尝试读取名为“$ file_name”的文件,而不是名为“存储在$ file_name标量中的任何内容”的文件。

删除引号。