#!/usr/bin/perl -w
use Term::ReadKey;
ReadMode('cbreak');
while (1) {
$char = ReadKey(-1);
next unless defined $char;
printf("Char: $char Decimal: %d\tHex: %x\n", ord($char), ord($char));
}
ReadMode('normal');
Выше работ отлично. Но я хочу, чтобы пользователь мог вводить данные во время выполнения какого-либо исполняемого файла. поэтому я попробовал ниже, но не работал. возможно, запустить исполняемый файл, пытаясь получить пользовательский ввод, испортился? если да, то как мне это сделать?Perl неблокирующий пользовательский ввод
Я получаю выход от $ myexe и в зависимости от пользовательского ввода, я хотел бы, чтобы отфильтровать вещи из различных $ myexe
#!/usr/bin/perl -w
use Term::ReadKey;
my $myexe = 'bin/myexecutable';
open my $EXE,
"$myexe distribute 2>&1 |"
or die 'Cannot open EXE';
ReadMode('cbreak');
while (<$EXE>) {
$char = ReadKey(-1);
if (defined $char) {
print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> $char\n"; #i would press a key but nothin prints out
}
print "$_\n";
}
ReadMode('normal');
Что такое вывод 'bin/myexecutable distribute'? – rubikonx9
@ g.tsh связка строк. Пример: «building» –
ealeon
@ g.tsh - это вывод bin/myexecutable messing со мной, способным получить пользовательский ввод? – ealeon