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

haj
 2018-06-17 12:08
#188542 #188542
User since
2015-01-07
531 Artikel
BenutzerIn

user image
2018-06-17T06:45:05 bianca
Im Moment möchte ich erstmal nur mit der größtmöglichen Genauigkeit feststellen, ob ein CPAN Modul in einer neueren Version vorliegt als benötigt oder eben nicht.
Ok, verstanden... ich dachte, es ginge um die Entscheidung, welches Versionsformat Du selbst verwenden willst. In dem Fall ist meine klare Empfehlung, sich an das Versionsschema zu halten, das dieser CPAN Modul benutzt. Denn wenn Du mit einer real auf CPAN freigegebenen Version auf CPAN vergleichst, dann macht version das auch richtig!

2018-06-17T06:45:05 bianca
Habe noch Probleme mit CPAN:List::Util: in der Util.pm steht zwar "sauber" our $VERSION    = "1.50"; aber ausgelesen mit say List::Util->VERSION bleibt davon nur noch 1.5 übrig. Und damit bewirkt ein vorangestelltes v - was den anderen Fall heilt - genau das Gegenteil.
Ja, weil "1.50" wie eine Zahl aussieht. Merkregel: Mit einem Punkt ist es eine Zahl, mit mehr als einem Punkt sind es mehrere voneinander unabhängige Zahlen. Wenn Du ein 'v' voranstellst, dann erzwingst Du die Interpretation als "Dotted Version", weil "v1.50" nicht wie eine Zahl aussieht.
Neil Bowers hat (2013) eine CPAN-Statistik gemacht und das Format "n.nn" hatte mit 64% klar die Mehrheit: Simple Version Numbers.

2018-06-17T06:45:05 bianca
...

Vielleicht das Präfix v bei Versionen mit mehr als einem Punkt und sonst nicht?

$version = ($version =~ /^([0-9.]+)/ && scalar(split /\./,$version) > 2 ? 'v' : '').$version
Das tut's. Allerdings ist dann das 'v' gar nicht nötig, weil bei zwei Punkten das version-Modul eh' die "Dotted Version"-Umrechnung macht.

Übrigens: Vor nicht allzu langer Zeit ist kein geringerer als Dave Cross in genau diese Falle getreten mit der Erkenntnis dass "12.2" größer ist als "12.2.1": Version Numbers. Jetzt dürfen wir uns getrost etwas weniger doof fühlen.

View full thread version kaputt?