我是Perl编码的新手.我在执行一个小脚本时遇到问题: open无法找到我作为参数提供的文件.
该文件可用:
ls -l DLmissing_months.sql
-rwxr-xr-x 1 tlmwrk61 aimsys 2842 May 16 09:44 DLmissing_months.sql
Run Code Online (Sandbox Code Playgroud)
我的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);
Run Code Online (Sandbox Code Playgroud)
执行Perl脚本:
> new.pl DLmissing_months.sql
Error opening file - No such file or directory
Run Code Online (Sandbox Code Playgroud)
我的Perl脚本有什么问题?
Mar*_*tos 11
单引号不进行插值.DLmissing_months.sql您正在尝试打开一个名为的文件,而不是打开$file_name.使用双引号进行插值.在这种情况下,您可以单独使用该变量:
open( my $fh, '<', $file_name)
Run Code Online (Sandbox Code Playgroud)
你把$file_name单引号放在里面.单引号是非插值的,因此您尝试读取名为"$ file_name"的文件,而不是名为"存储在$ file_name标量中的任何内容"的文件.
删除引号.
| 归档时间: |
|
| 查看次数: |
8841 次 |
| 最近记录: |