#include void my_puts(FILE*); #### #include void my_puts(FILE * stream) { fputs("hello from libmylib", stream); } #### C:\_32\C>gcc -c mylib.c C:\_32\C>ar cru libmylib.a mylib.o #### use warnings; use strict; use Inline C => Config => INC => '-IC:/_32/C', LIBS => '-LC:/_32/C -lmylib', BUILD_NOISY => 1; use Inline C => <<'EOC'; #include void foo(FILE * x) { my_puts(x); fflush(x); } EOC $| = 1; for(1 .. 2) { foo(*stdout); print "\nhello from perl\n"; } for(1 .. 2) { foo(*stderr); print "\nhello from perl\n"; } #### hello from libmylib hello from perl hello from libmylib hello from perl hello from libmylib hello from perl hello from libmylib hello from perl #### hello from libmylib hello from perl hello from libmylibhello from libmylibhello from libmylib hello from perl hello from perl hello from perl