Net::Ping::External is a module which interfaces with the ping(1) 
command on the system. It presently provides a single function,
ping(), that takes in a hostname and (optionally) a timeout and 
returns true if the host is alive, and false otherwise. Unless 
you have the ability (and willingness) to run your scripts as 
the superuser on your system, this module will probably provide 
more accurate results than Net::Ping (bundled with the perl
base installation) will. 

