У меня есть хороший индикатор прогресса из Нужен индикатор прогресса для команды Perl system (), использующей T: R: G mod
open(my $cmd, '-|', "$command $flags_args 2>/dev/null")
or print "\nAttention: Command $command $flags_args failed $!"
and return 1;
while (<$cmd>)
{
$percentage = ($cntr/$lines) * 100;
$percentage = 100 if $percentage > 100;
printf("Progress: %3d%%\r", $percentage);
$cntr++;
}
close($cmd);
Теперь мой я хочу войти в системуSTDOUT и STDERR вывода команд.Я не слишком знаком с выводом канала, поэтому я попытался добавить:
print $LOG $cmd
и
print $LOG Dumper(\$cmd)
до конца цикла while.Это не работает.Первый вывод
GLOB(0x11df7a0)GLOB(0x11df7a0)GLOB(0x11df7a0)
, второй
$VAR1 = \\*{'::$cmd'};
$VAR1 = \\*{'::$cmd'};
$VAR1 = \\*{'::$cmd'};
Кто-нибудь знает, как я могу получить вывод из переданного по каналу $ cmd?Пример для $ command = make command
Making all in src
make[1]: Entering directory `/tmp'
Making all in include
make[2]: Entering directory '/tmp/2'
...