#!/usr/bin/perl use Curses; use Net::Ping; @host_array = qw(fee fie foo quan); initscr(); cbreak(); noecho(); clear(); refresh(); endwin(); while(1) { # High precision syntax (requires Time::HiRes) foreach my $host (@host_array) { $p = Net::Ping->new(); $p->hires(1); ($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(); } $p->close(); exit(0); }