in reply to Bind Socket client to specific IP

One thing that jumps out is that you are trying to bind to local port 43. This would require that the script run as root on most unix-like OS's. I'm not aware of any requirement for a whois client to bind to port 43 on the local end of the socket.

Perhaps you could try changing

my $local = sockaddr_in(43, $local_host);
to
# the '0' lets the kernel pick the next unused port my $local = sockaddr_in(0, $local_host);
Additionally, checking return values and printing $! on errors might help point you in the right direction. Particularly: bind(SOCK,$local) or die "Can't bind: $!";