in reply to Perl UNIX sockets dilemma

You've got the right idea, but you're looking for the errors in the wrong place. $@ is for eval errors, not run-time errors. Those are reported in $!, or $ERRNO if you're using English.

If you fix that, $! is "Invalid argument". I presume that is attributable to the "Listen => 5" parameter, because when that's removed, it works fine.

The "Listen" parameter is to define how many pending connections you want to have, but if your process is attentive enough and accepts them as soon as connections are initiated, the default value should be fine (which is, I believe, 5 anyway).