Option 4 - have share() be a Perl subroutine that determines if the version of Perl is 5.6 or 5.8. If it's 5.6, takes the reference. Then, passes whatever to the XS routine. When building the XS routine, determine the Perl version and build with or without the prototype.
in reply to Forks.pm dilemma
In other words, make your stuff smart so the user can be dumb. :-)
We are the carpenters and bricklayers of the Information Age.
The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6
Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.