2
#!/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 2015-02-11 07:58:12
@g.tsh一串字符串。例如,“building” –
ealeon
2015-02-11 08:00:13
@ g.tsh是bin/myexecutable的输出与我能够获取用户输入? – ealeon 2015-02-11 08:00:46