my $timeout = pack( 'L!L!', $seconds, 0 ); defined $socket->sockopt( SO_RCVTIMEO, $timeout ) or die "Couldn't set timeout: $!"; #### use 5.010; use strict; use warnings; use Inline C => 'DATA'; my $timeval = pack_timeval(2,0); __DATA__ __C__ SV* pack_timeval(time_t tv_sec, long tv_usec) { struct timeval tv; tv.tv_sec = tv_sec; tv.tv_usec = tv_usec; return newSVpv((char *) &tv, sizeof(struct timeval)); }