pingecho() or a ping object with the tcp protocol use alarm() to implement the timeout. So, don't use alarm() in your program while you are using pingecho() or a ping object with the tcp protocol. The udp and icmp protocols do not use alarm() to implement the timeout. #### $p = Net::Ping->new(); $p->ping(\@list_of_hosts, $timeout, $num_forks);