Thread version kaputt?
(14 answers)
Opened by bianca at 2018-06-15 18:15
Hiermit wären meine Notwendigkeiten erfüllt.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 #!/usr/bin/perl use strict; use warnings; use 5.010; sub version_vergleich { # Thema "version kaputt?" --> https://www.perl-community.de/bat/poard/thread/20476 my ($v1,$v2) = @_; my $praefix = scalar(split /\./,$$v1) > 2 || scalar(split /\./,$$v2) > 2 ? 'v' : ''; my $links = version->parse(($$v1 =~ /^([0-9.]+)/ ? $praefix : '').$$v1); my $rechts = version->parse(($$v2 =~ /^([0-9.]+)/ ? $praefix : '').$$v2); return $links < $rechts ? 1 : $links == $rechts ? 2 : 3; } my @deut = ('','<','=','>'); my $nr = 0; foreach my $ref ( { zeile => __LINE__, wert1 => '1.2.4', wert2 => '1.1', sollergebnis => 32, }, { zeile => __LINE__, wert1 => 'v1.2.4', wert2 => '1.1', sollergebnis => 32, }, { zeile => __LINE__, wert1 => '1.2.4', wert2 => 'v1.1', sollergebnis => 32, }, { zeile => __LINE__, wert1 => 'v1.2.4', wert2 => 'v1.1', sollergebnis => 3, }, { zeile => __LINE__, wert1 => '1.1', wert2 => '1.2.4', sollergebnis => 1, }, { zeile => __LINE__, wert1 => '1.2.4', wert2 => '1.2.4', sollergebnis => 2, }, { zeile => __LINE__, wert1 => '1.2.4.0', wert2 => '1.2.4', sollergebnis => 2, }, { zeile => __LINE__, wert1 => '1.2.4.0', wert2 => '1.2.4', sollergebnis => 32, }, { zeile => __LINE__, wert1 => '1.19', wert2 => '1.5', sollergebnis => 1, }, { zeile => __LINE__, wert1 => '1.19', wert2 => '1.5', sollergebnis => 12, }, { zeile => __LINE__, wert1 => 1.19, wert2 => 1.50, sollergebnis => 12, }, { zeile => __LINE__, wert1 => 1.19, wert2 => 1.5, sollergebnis => 1, }, { zeile => __LINE__, wert1 => 'v1.19', wert2 => 'v1.50', sollergebnis => 12, }, { zeile => __LINE__, wert1 => 'v1.19_01', wert2 => 'v1.19_02', sollergebnis => 1, }, ) { $nr ++; printf "Zeile %03d mit $ref->{wert1} ",$ref->{zeile}; print map {$deut[$_]} (split //,$ref->{sollergebnis}); print " $ref->{wert2} --> "; my $erg = version_vergleich(\$ref->{wert1},\$ref->{wert2}); my $treffer = 0; foreach my $char (split //,$ref->{sollergebnis}) { if ($erg == $char) { $treffer = 1; last; } } if ($treffer) { say "OK"; } else { say "FEHLER, tatsaechliches Ergebnis: $deut[$erg]"; exit; } } Verbesserungen? Editiert von bianca: + tabs=4 Last edited: 2018-06-17 10:07:34 +0200 (CEST) 10 print "Hallo"
20 goto 10 |