Как мне установить `SO_RCVTIMEO` для сокета в Perl?

Если я попытаюсь так:

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

тогда мой скрипт подвергается смерти от "setsockopt: Неверный аргумент в [строка 2]".IO::Socket а такжеperlfunc pods не говорят, хотя perlfunc приводит пример сTCP_NODELAY что делает это похоже на то, что выше должно работать.

(быстрое примечание: Я ответил на свой собственный вопрос, как мог, но, конечно, приветствую лучший ответ. Самым очевидным «лучше» было бы, чтобы он был переносимым, по крайней мере на машинах POSIX

Ответы на вопрос(2)

Ваш ответ на вопрос