note
simonflk
<p>Maybe I'm missing something, but won't something like this work:</p>
<code>
/* --- 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
</code>
<p>Just stick your PROTOTYPE in the perl 5.8.x bit and it will be ignored on earlier perls.</p>
<p><b>Update:</b> So, your share_561() would accept a regular variable and pass a reference to the actual share()</p>
<!--sig-->
<p>-- simonflk</p>
<!--/sig-->
281932
281932