This patch should be applied as soon as practical, as it improves the v-string detection in Perl releases from 5.6.x through 5.8.0 (inclusive). It is not required for the 5.10.2 release (though I wouldn't cry if it were included anyways, just to be consistent, since 5.10.2 should ship with version.pm 0.78).
I have an in-progress patch to deal with multiple underscores in version initialization, so if that lands before this gets applied, I'll provide a new patch. John --- lib/Module/Build/Version.pm (revision 2870) +++ lib/Module/Build/Version.pm (local) @@ -121,8 +121,7 @@ use POSIX qw/locale_h/; use locale; use vars qw ($VERSION @ISA @REGEXS); -$VERSION = '0.77'; -$VERSION = eval $VERSION; +$VERSION = 0.78; push @REGEXS, qr/ ^v? # optional leading 'v' @@ -613,9 +612,10 @@ sub _un_vstring { my $value = shift; # may be a v-string - if ( $] >= 5.006_000 && length($value) >= 3 && $value !~ /[._]/ ) { + if ( $] >= 5.006_000 && length($value) >= 3 && $value !~ /[._]/ + && (ord($value) < ord('0') || ord($value) > ord('9')) ) { my $tvalue = sprintf("v%vd",$value); - if ( $tvalue =~ /^v\d+\.\d+\.\d+$/ ) { + if ( $tvalue =~ /^v\d+(\.\d+){2,}$/ ) { # must be a v-string $value = $tvalue; }