Использование perl для записи в файл в другом каталоге (Ubuntu 16.04) - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь записать вывод в файл. Я хочу создать новый файл в другом каталоге, чем где расположен скрипт Perl, и записать в него. Я пробовал следующее:

#!/usr/bin/env perl
use strict; 
use 5.16.0; 

my $filename = '/home/python/test.txt';

open (MYFILE, '>','$filename') || die;
print("File $filename opened successfully!\n");
printf MYFILE "test";
close(MYFILE);

Однако, это просто создает новый файл с буквальным названием «$ filename» в том же каталоге, в котором сохранен скрипт Perl. Что я делаю не так?

1 Ответ

0 голосов
/ 05 ноября 2018

В perl, как и во многих языках сценариев, одинарные тики и двойные кавычки имеют различное значение, даже если они обе строки.

Одиночные тики предназначены для сохранения буквальной природы строковой константы, поэтому долларовые переменные и управляющие последовательности, такие как \ n, не оцениваются.

Попробуйте использовать "$filename" с двойными кавычками.

Кроме того, в этом случае, поскольку ваша строка содержит только переменную и ничего больше, вы можете полностью удалить кавычки и просто передать $filename.

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