実行されるスクリプトがありますが、ユーザーが別のテストを実行している間、プロセスに 20 ~ 30 秒間スリープするように指示するループが必要です。
そのテストが完了すると、ユーザーは を押しEnterて、スクリプトが中断された場所から続行します。Enter20 ~ 30 秒以内に が押されない場合、スクリプトはユーザーの入力なしで実行され続けます。
次のコードを試してみましたが、スクリプトが無期限に一時停止します。20 秒後には続行されませんが、Enter.
use Term::ReadKey;
ReadMode 4;
do {
sleep 20;
} until ( defined( $key = ReadKey(-1) ) );
ReadMode 0;