gpt4 book ai didi

Perl Term::ReadKey 不要等待换行

转载 作者:行者123 更新时间:2023-12-04 11:31:19 28 4
gpt4 key购买 nike

在 perl 脚本中,我试图在不阻塞和不回显输入的字符的情况下接受输入(脚本正在生成输出,我希望使用“热键”来改变其行为)。

我尽可能使用

use Term::ReadKey;
ReadMode( "cbreak", STDIN );
if($input = ReadKey($pause_time, STDIN)){
#process input
}

但是一旦用户输入任何内容,脚本就会停止,直到输入换行符。我希望按字符处理输入,而无需等待换行符。

最佳答案

这是一个小程序,可以执行我认为您想要的操作:

#!/usr/bin/perl

use strict;
use warnings;

use Term::ReadKey;

ReadMode 4;
END { ReadMode 0 }

print <<EOS;
q to quit
b to print in binary
o to print in octal
d to print in decimal
x to print in hexadecimal
EOS

my $control = "d";
my $i = 0;
while (1) {
#use "if" if you want to have a buffer of commands
#that will be processed one per second
while (defined (my $key = ReadKey(-1))) {
exit 0 if $key eq 'q';
$control = $key if $key =~ /^[bodx]$/;
}
printf "%$control\n", $i++;
sleep 1;
}

关于Perl Term::ReadKey 不要等待换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3054753/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com