#!/usr/bin/perl use Curses; use Net::Ping; @host_array = qw(fee fie foo quan); initscr(); noecho(); cbreak(); nodelay(1); while(1) { clear (); refresh(); # High precision syntax (requires Time::HiRes) foreach $host (@host_array) { $p = Net::Ping->new(); $p->hires(); ($ret, $duration, $ip) = $p->ping($host, 5.5); printf("$host [ip: $ip] is down\n") unless $p->ping($host, 2); printf("$host [ip: $ip] is alive (packet return time: %.2f ms)\n", 1000 * $duration) if $ret; $p->close(); } sleep 2; }