You can do it with threads, but the simplest way is to use Net::Ping in syn/ack (asynchronous) mode. See Re: Optimized remote ping (syn/ack) for a little detail.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
In the absence of evidence, opinion is indistinguishable from prejudice.