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)); }