threadn { eval { sighandler = {}; alarm 15; ## alarm#1 start threadn+1; start threadn+2; threadn+2->join threadn+1->join } alarm 0; } threadn+1{ eval{ sighandler = {}; alarm 15; ## alarm#2 @input = qx[ ping ]; } alarm 0; } threadn+2 { @input = qx[ tcpdump; return @input; }