in reply to h2xs wierdness... what the????

I rather think that you've found a bug with C::Scan. Here's what appears to be the problem (at least on my linux box:)
typedef __fd_mask fd_mask; # 102 "/usr/include/sys/select.h" 3 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout) ; # 216 "/usr/include/sys/types.h" 2 3
The above is the result of running cc -E on your DataLib.h file. It would appear that C::Scan doesn't understand __restrict as a keyword.

You might get decent results without using the -x option to h2xs as a work-around.

Michael