@Mavven

Как передать значение переменной в perl на внешнюю программу?

Подскажите пожалуйста, как правильно передать значение $word в system() для дальнейшего выполнения в команде?
Перепробовал варианты с разными кавычками, экранированием. Не получается разобраться, подскажите пожалуйста как правильно передаётся значение.

#!/usr/bin/perl
my $word = 'test';
#my $file = '/home/text.txt'
my @cmd = q[echo "$word" >> "/home/text.txt"];
system(@cmd);
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
@Konvergent
начинающий разработчик
Попробуй так:
#!/usr/bin/perl
my $word = 'test';
#my $file = '/home/text.txt'
my @cmd = qq(echo "$word" >> "/home/text.txt");

system(@cmd);

q() - это оборачивание в одинарную кавычку без интерполяции,
qq() - это двойные кавычки с интерполяцией (т.е. с подстановкой значений переменной)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы