demerphq wrote: >>> $VERSION = "1.12_01"; >>> $XS_VERSION = $VERSION; # only needed if you have XS code >>> $VERSION = eval $VERSION; > > im not convinced this actually does anything. ISTR i had to roll my > own "parse out the $XS_VERSION code" thingee for DDS.
I;m very onfident that the recommended recipe DTRT. XS_VERSION_BOOTCHECK used to do a simplistic strcmp (ARG) prior to version objects being added to the core. The issue was always if you didn't explicitly specify an XS_VERSION in your Perl code, then EU::MM and M::B would be forced to guess, and that could be disastrous. Whatever literal string exists in the XS file itself, would be compared with whatever string representation that EU::MM/M::B would concoct. Even a trailing zero in the XS file would fail if the $VERSION assignment in the Perl module wasn't quoted. In 5.10.0 and forward, XS_VERSION_BOOTCHECK upgrades the requested XS_VERSION scalar to a version object and compares that against the XS_VERSION in the XS code (or falls back to the modules $VERSION if that doesn't exist). John