Thanks for the reply ... I'll clarify. After executing the scripts it should wait a maximum of x seconds, or until each script has completed if that is sooner, and then continue processing the original script - and then exit. That's why using alarms is useful.
I thought that exec (as you've suggested) would simply replace the currently executing process, but I'm open to experimenting.
However, I would prefer to get the existing code working if possible, since I know can work (first example). I'm just not certain I am implementing it correctly (second example) in my own code, and would like somebody more Perlish than myself to suggest/help with that if possible.
Appreciate your comments though.