Что-то типа этого должно прокатить. Только обработку ошибок надо
добавить конечно.
...
my $socket;
my $proto = getprotobyname('udp');
socket($socket, PF_INET, SOCK_DGRAM, $proto);
setsockopt($socket, SOL_SOCKET, SO_REUSEADDR, 1);
setsockopt($socket, SOL_SOCKET, SO_BROADCAST, 1);
bind($socket, sockaddr_in(0, INADDR_ANY));
my $server = sockaddr_in($port, INADDR_BROADCAST);
send($socket, "RRRRRR", 0, $server);
my $peer_addr = recv($socket, $answ, 200, 0);
...