in reply to UDP-Broadcast with socket

I think you're suppose to send to INADDR_BROADCAST but listen on INADDR_ANY (or whatever) as normal.

Your seem to have posted your server code twice?

By the way, IO::Socket::INET provides a cleaner interface.