use strict; use IO::Select; use IO::Handle; use Time::HiRes qw(usleep); $| =1 ; my $pingout ; open($pingout, '-|', "tracert www.google.com"); if($pingout){ my $select = IO::Select->new(); $select->add($pingout); while (1) { print "loop\n"; my $line; if (my @ready = $select->can_read(0) ) { foreach(@ready){ $_->sysread($line, 2048); print $line,$/; } } usleep(100000); # 100 ms } }