in reply to Unix text-mode CB Client

Another way to implement a timeout on a user input read (that is what you're doing, right?) is to use Term::ReadKey and its ReadLine method (or ReadKey, but here you want to read a line, so...).

use Term::ReadKey; my $message = ReadLine(10); ## timeout of 10 seconds
This manages all of the timeout issues for you. Although it may not do so in a way that suits you, who knows. And you may already have tried it, even. Anyway.