15.9 待機状態の入力を検査する

キーボードからの入力が実際に読み取られずに待機状態になっているかどうかを検査したい。

  • CPANのTerm::ReadKeyモジュールを使用して、引数として-1を渡すことによって、非ブロックモードによるキーの読み取りを試みる。
use Term::ReadKey;

ReadMode ('cbreak');

if (defined ($char = ReadKey(-1))) {
  # 入力が待機状態になっていた場合、$charに代入される
} else {
  # 入力が待機状態になっていなかった場合
}

ReadMode ('normal');   # 通常のtty設定を復元する