¿Cómo configuro `SO_RCVTIMEO` en un socket en Perl?

Si lo intento así:

my $sock = IO::Socket::INET->new( … )                    or die "no socket for you";
defined $sock->setsockopt(SOL_SOCKET, SO_RCVTIMEO, 30)   or die "setsockopt: $!";

then mi script sufre la muerte de "setsockopt: argumento no válido en [línea 2]". LosIO::Socket yperlfunc pods no dicen, aunque perlfunc da un ejemplo conTCP_NODELAY lo que hace que parezca que lo anterior debería funcionar.

(nota rápida Respondí mi propia pregunta, lo mejor que pude, pero sin duda agradezco una mejor respuesta. El "mejor" más obvio sería que sea portátil, al menos en máquinas POSIX)

Respuestas a la pregunta(2)

Su respuesta a la pregunta