+
+ $version =~ s/[^\d._]+//g;
+ $version =~ s/^[._]*//;
+ $version =~ s/[._]*$//;
+ $version =~ s/[._]*_[._]*/_/g;
+ {
+ ($version, my $patch, my @rest) = split /_/, $version;
+ $version .= '_p' . $patch if defined $patch;
+ $version .= join('.', '', @rest) if @rest;
+ }