http://qs1969.pair.com?node_id=282875


in reply to Forks.pm dilemma

Maybe I'm missing something, but won't something like this work:

/* --- PerlVersionDemo.xs --- */ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include <stdio.h> void print_hello_561 (void) { printf("hello world from perl 5.6.1\n"); } void print_hello_58 (void) { printf("hello world from perl 5.8 or higher\n"); } MODULE = PerlVersionDemo PACKAGE = PerlVersionDemo #if (PERL_REVISION == 5) && (PERL_VERSION == 6) && (PERL_SUBVERSION == + 1) void print_hello() CODE: print_hello_561(); #else # if (PERL_REVISION == 5) && (PERL_VERSION >=8) void print_hello() CODE: print_hello_58(); # endif #endif

Just stick your PROTOTYPE in the perl 5.8.x bit and it will be ignored on earlier perls.

Update: So, your share_561() would accept a regular variable and pass a reference to the actual share()

-- simonflk