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

bianca
 2018-06-17 08:45
#188540 #188540
User since
2009-09-13
6583 articles
BenutzerIn

user image
2018-06-16T20:06:07 haj
Me too :)
:)

2018-06-16T18:20:46 bianca
Das hängt davon ab, mit welchen weiteren Verarbeitungsschritten das Modul dann verarbeitet wird

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.

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.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;

if (version->parse('1.2.4') <= version->parse('1.1')) {say "1wahr";}    # 1wahr --> falsch
if (version->parse('v1.2.4') <= version->parse('v1.1')) {say "2wahr";}  # '' --> richtig

require List::Util; say List::Util->VERSION; # 1.5
if (version->parse('1.19') <= version->parse('1.5')) {say "3wahr";}         # 3wahr --> richtig
if (version->parse('1.19') <= version->parse('1.50')) {say "4wahr";}    # 4wahr --> richtig
if (version->parse('v1.19') <= version->parse('v1.5')) {say "5wahr";}   # '' --> falsch
if (version->parse('v1.19') <= version->parse('v1.50')) {say "6wahr";}  # 6wahr --> richtig


Gibt es dafür eine allgemeingültige Lösung? 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
10 print "Hallo"
20 goto 10

View full thread version kaputt?