Actually there is at least one special case: AIX. AIX does it its own way: uname -r returns the minor version of the OS, while uname -v returns the major version; this is the output on AIX 4.3:
bash$ uname -s
bash$ uname -r
bash$ uname -v
With your code the system will appear to have AIX 3 intead of 4...
The very nature of Perl to be like natural language--inconsistant and full of dwim and special cases--makes it impossible to know it all without simply memorizing the documentation (which is not complete or totally correct anyway).
--John M. Dlugosz