0
#!/usr/bin/env perl

use Term::ReadKey;
ReadMode 4;
END {
    ReadMode 0; # Reset tty mode before exiting
}

while (<>) {
    $key = ReadKey(0);
    $key == "\x04" and last; # Ctrl+D breaks the loop 
    print $key;
}

while ループなしで実行すると、入力した内容が出力されました。

最後に出力さえ生成しません(バッファリングしていた場合など)。それを実行して数文字を入力し、Ctrl+D を押すように。それは何も印刷しません。

マウス スクロールのエスケープ コードを keypresses に変換するプログラムを作成しようとしています。間違った木を吠えていないことを願っています。

4

2 に答える 2

3

while 条件を次のように置き換えるだけです。

while(1) {
   # ...
}
于 2013-04-14T10:03:39.617 に答える