So, what's the problem? I didn't see it in your post. The main issue I'm aware of with alarm is that recent versions of perl (5.6+ I think) use "safe signal handling" which means you may not get the signal for a little bit. You can turn it off. There is some discussion of this problem in DBIx-Timeout.