Leser: 1
10 Einträge, 1 Seite |
moritz+2008-02-07 15:28:18--Und gefällt dir Array::Diff nicht? das wäre vermutlich deutlich einfacher für dich.
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
sub vergleichen { my $x = 0; my $y = 0; my $vergl_index_1 = 0; my $vergl_index_2 = 0; while ($x<=$#datei_array) { while ($y<=$#{$datei_array[$x]}) { my $zaehler_array_2 = $x+1; if ($datei_array[$x][$vergl_index_1] eq $datei_array[($x+1)][$vergl_index_2]) { print "$vergl_index_1\n"; push (@in_allen_arrays, $datei_array[$x][$vergl_index_1]); push (@in_allen_arrays, "\n"); $vergl_index_1++; $vergl_index_2++; } if ($datei_array[$x][$vergl_index_1] lt $datei_array[($x+1)][$vergl_index_2]) { push (@nur_array_1, $datei_array[$x][$vergl_index_1]); push (@nur_array_1, "\n"); $vergl_index_1++; } if ($datei_array[$x][$vergl_index_1] gt $datei_array[($x+1)][$vergl_index_2]) { push (@nur_array_2, $datei_array[($x+1)][$vergl_index_2]); push (@nur_array_2, "\n"); $vergl_index_2++; } $y++; } $x++; } }
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
use 5.008; use strict; use warnings; # Data sample my @from = (1, 2, 4, 7); my @to = (1, 3, 4, 5, 7, 8); # Result my $count = 0; # number of changes my @added = (); # elements added in transition from @from to @to my @removed = (); # elements removed in transition from @from to @to # Algorithm my ($i, $j) = (0, 0); while ($i <= $#from or $j <= $#to) { if ($i > $#from or ($j <= $#to and $from[$i] > $to[$j])) { $count++; push @added, $to[$j++]; } elsif ($j > $#to or ($i <= $#from and $from[$i] < $to[$j])) { $count++; push @removed, $from[$i++]; } else { $i++; $j++; } } # Output { local $" = ', '; print "count: $count\n"; print "added: @added\n"; print "removed: @removed\n"; }
Gast+2008-02-07 16:12:40--[...] soweit ich das verstanden habe, muss ich das "Algorithm::Diff"-Modul erst installieren...das ist aber an dem Rechner an dem ich sitze nicht möglich [...]
murphy+2008-02-07 16:22:59--Gast+2008-02-07 16:12:40--[...] soweit ich das verstanden habe, muss ich das "Algorithm::Diff"-Modul erst installieren...das ist aber an dem Rechner an dem ich sitze nicht möglich [...]
Das ist immer möglich: Wiki: Wie installiere ich ein Modul?
10 Einträge, 1 Seite |