|There's more than one way to do things|
Why is that ?
The version documentation has a section on v-strings that begins:
Beginning with Perl 5.6.0, an alternate method to code arbitrary strings of bytes was introduced, called v-strings. They were intended to be an easy way to enter, for example, Unicode strings (which contain two bytes per character). Some programs have used them to encode printer control characters (e.g. CRLF). They were also intended to be used for $VERSION, but their use as such has been problematic from the start.
And goes on to more discouraging things, including:
the use of bare v-strings to initialize version objects is strongly discouraged in all circumstances (especially the leading 'v' style), since the meaning will change depending on which Perl you are running.
Then gives some guidance in case you insist on using bare v-strings with Perl > 5.6.0.
Re-reading this now, maybe it is only bare v-strings that are being discouraged. On the other hand, maybe they are all problematic but only the bare ones are being strongly discouraged.
v-strings must die! also suggests v-strings are not good. But this is from 2003, so the situation and intent could have changed since then.
Maybe I shouldn't have been so quick to scratch v-strings off my list of possibilities?