in reply to Problem with recv()???

After reading the documentation for recv, the check on $from_who really should be:
if (defined($from_who)) { # message received } else { # error }
See if that makes a difference.