Thread version kaputt? (14 answers)
Opened by bianca at 2018-06-15 18:15

haj
 2018-06-15 19:53
#188534 #188534
User since
2015-01-07
272 articles
BenutzerIn

user image
Da habe ich aber auch einmal gestutzt.

Man kann es erklären, aber mit dem "Prinzip der geringsten Überraschung" hat das nichts mehr zu tun.

Die Ursache liegt darin, dass 1.2.4 und 1.1 unterschiedlich behandelt werden:

  • 1.1 ist einfach. Das ist die Zahl 1.1, und als solche wird auch verglichen.
  • 1.2.4 ist ein "Dotted Decimal". Das wird dann konvertiert - nach 1.002004, und ist somit kleiner als 1.1.
  • Mit vorangestelltem 'v' wird immer als Dotted Decimal behandelt. v1.1 wäre also tatsächlich kleiner als 1.2.4.


Ich habe mal ein paar Versionen rund um die von Dir angegebenen zusammengestellt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;

my @versions = (
    version->parse('1.1'),
    version->parse('1.2.4'),
    version->parse('v1.1'),
    version->parse('v1.2.4'),
    version->parse('1.002003'),
    version->parse('1.002005'),
    version->parse('1.099'),
    version->parse('v1.99'),
    version->parse('1.101')
);

say for sort @versions;


Ergebnis:
Code: (dl )
1
2
3
4
5
6
7
8
9
v1.1
1.002003
1.2.4
v1.2.4
1.002005
1.099
v1.99
1.1
1.101


Also: 'v1.1' ist die kleinste Version, aber '1.1' ist größer als 'v1.99'.

Es haben sich schon andere drüber gegruselt, wie z.B. D.A.Golden:
Version numbers should be boring

View full thread version kaputt?