perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




11.02.2012 / 22:53

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragversion vergleich
Seitenanfang
hi

ich balstell gerade an einem script was eine
aktulle datei version mit der auf einem rcs system
vergleicht.

nun mache ich im prinzip

if ver a > ver b

jedoch passiert es hier das er die version 1.5 hoeher
interpretiert als die version 1.13 .
ich denke ich muss die zahlen erst aufbereiten damit das passt.

gibt es dafuer eine funktion in perl ?

holger

Datum: 07.03.2008-12:58

Beitragre: version vergleich
Seitenanfang
my $vers_1 = 1.5;
my $vers_2 = 1.13;
my ($check_1) = (split /\./, $vers_1)[-1];
my ($check_2) = (split /\./, $vers_2)[-1];
if( $check_1 > $check_2 ){
#...
}

Datum: 07.03.2008-13:21

Beitragre: version vergleich
Seitenanfang
hi

ja den split gedanken hatte ich auch , jedoch
sehe ich das etwas problematisch das rcs auch schonmal
ne version 1.10.1 und aehnlich bringen kann.

ich spiele zz mit dem gedanken einfach den . rauszuschneiden so das ich 1x die 15 und
1x 113 als version habe .

holger

Datum: 07.03.2008-13:47

Beitragre: version vergleich
Seitenanfang
Und was machst Du bei 1.5.1 und 1.13??

Datum: 07.03.2008-18:07

Beitragre: version vergleich
Seitenanfang
Hallo!

schau dir mal das Modul Perl::Version (http://search.cpan.org/~andya/Perl-Version-1.004/lib/Perl/Version.pm) und dort speziell die Methode 'numify' an.
Dort wird dein Problem gelöst, indem für jeden Punkt eine entsprechende Anzahl Nullen eingefügt wird.
d.h. du würdest dann 1.013 und 1.005 als Versionsnummern erhalten (plus einiger zusätzlicher Nullen hinten dran).

Wenn du nicht das ganze Modul installieren willst, kannst du ja zumindest die Idee für eine eigene Umwandlungsfunktion wiederverwenden.

Grüße, Skrilax

Datum: 07.03.2008-23:56

Beitragre: version vergleich
Seitenanfang
Oder was natürlich noch viel einfacher ist:


use Perl::Version;
my $a = Perl::Version->new('1.5');
my $b = Perl::Version->new('1.13');
print "\$b ist aktueller\n" if $a < $b;

(Ein Hoch auf overload ;-) )

Grüße, Skrilax

Datum: 08.03.2008-00:17

-






-
-