Почему открытый Perl не может найти мой файл? - PullRequest
3 голосов
/ 17 мая 2010

Я новичок в кодировании 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 ]

11 голосов
/ 17 мая 2010

Одинарные кавычки не интерполируются. Вместо открытия DLmissing_months.sql вы пытаетесь открыть файл с именем $file_name. Используйте двойные кавычки, чтобы сделать вещи интерполировать. В этом случае вы можете просто использовать переменную самостоятельно:

open( my $fh, '<', $file_name)
8 голосов
/ 17 мая 2010

Вы положили $file_name в одинарные кавычки. Одинарные кавычки не интерполируются, поэтому вы пытаетесь прочитать файл с именем «$ file_name», а не файл с именем «все, что хранится в скаляре $ file_name».

Удалить кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...