Мне нужно запустить команду с переменными внутри команды. Мне нужно захватить вывод и сохранить его либо в одной строке, либо в массиве, это не имеет значения. Он будет вставляться в текстовое поле в Tk в любом случае.Чтение вывода команды unix с помощью Perl
Я пробовал:
my @array = '$variable_with_command';
Я не могу использовать:
my $variable = 'unixcommand $variableinside';
из переменной внутри, я видел, что как предложение других StackOverflow сообщения.
Он работает:
my $readvariable = 'ls -a';
, потому что нет переменных внутри, если нет способа включить переменные и иметь $ readvariable поймать выход? Заранее спасибо.
Вот мой код (это напечатанный ноль):
sub runBatch {
my $directory = "/directpath/directoryuser/sasmodules/";
my $command = 'sasq ' . $directory . $selectBatch;
my @batch = system($command);
print "This is the output\n";
print "-----------------------------------";
print @batch;
print "-----------------------------------";
}
Это не имеет много общего с переменными в команде. Это связано с тем, что команда ['system'] (http://search.cpan.org/perldoc?perlfunc#system) не делает то, что вы думаете. Чтобы захватить вывод внешней команды, вы хотите использовать обратные элементы, 'qx()' или ['readpipe'] (http://search.cpan.org/perldoc?perlfunc#readpipe). – mob
Спасибо, однако, если бы не переменные, у меня не было бы проблемы. Я верю, что использование обратных котировок будет правильным или нет, работает для моей проблемы. Я уверен, что есть много решений, как кажется Perl. –