if ($nfound = select($rout = $rin, undef, undef, $time_left)) { for (1 .. $nfound) { $sock->recv($msg, $MAX_SIZE) or warn "Socket error!: $@\n"; } #### my $incoming = IO::Socket::INET->new( LocalPort => $MSGPORT, Proto => 'udp', Timeout => 1); ## some more code... while ( $incoming->recv( $msg, $MAX_SIZE ) ) { my ( $port, $addr ) = unpack_sockaddr_in( $incoming->peername ); push @messages, [ $addr, $msg ]; last if @messages > $MAX_INC_Q_SIZE; }