my $socket = new IO::Socket::INET( PeerHost => $host, PeerPort => $port, Proto=>'udp', Timeout => 1, ) or die "Unable to create socket : $!"; my $select = IO::Select->new( $socket ); $socket->send( $query ); while ( my @handles = $select->can_read( 5 ) ) { foreach my $handle ( @handles ) { next unless $handle == $socket; $socket->recv( $packet, 1024*2 ); $buffer .= $packet; }; };