Leser: 2
![]() |
|< 1 2 >| | ![]() |
14 Einträge, 2 Seiten |
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
#!/usr/bin/perl
use diagnostics;
use strict;
use warnings;
use Data::Dumper;# nur für die Ausgabe
my @array1 = ("apfel 752 523 grün",
"birne 448 038 gelb",
"orange 361 098 orange",
);
my @array2 = ("apfel 752 523 grün",
"birne 448 638 gelb",
"zitrone 361 098 gelbgrün",
);
my @diff = ();
sub ist_element_in_array ($$) {
my $elem = shift;
my $array = shift;
my $elem_wort = (split / /, $elem)[0];
for my $aelem (@$array) {
my $array_wort = (split / /, $aelem)[0];
if ($elem_wort eq $array_wort) {
return $aelem;
}
}
return undef;
}
for my $elem (@array1) {
my $elem2 = ist_element_in_array($elem, \@array2);
if (defined $elem2) {
if ($elem eq $elem2) {
#Ja: Ok, wir brauchen es nicht in der Ausgabe
}
else {
#Nein: Schreibe beide Elemente in das Array diff
push @diff, ($elem, $elem2);
}
}
else {
# Nein: Nur in Array1, ok, schreibs ins Array diff
push @diff, $elem;
}
}
for my $elem2 (@array2) {
if (ist_element_in_array($elem2, \@array1)) {
# Ja: Ok nichts zu tun, das wurde in der ersten Schleife
# schon mit erfasst
}
else {
# Nein: Nur in Array2, ok, schreibs ins Array diff
push @diff, $elem2;
}
}
print "Array 1 :\n", Dumper(\@array1), "\n",
"Array 2 :\n", Dumper(\@array2), "\n",
"Array diff:\n", Dumper(\@diff), "\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Array 1 :
$VAR1 = [
'apfel 752 523 grün',
'birne 448 038 gelb',
'orange 361 098 orange'
];
Array 2 :
$VAR1 = [
'apfel 752 523 grün',
'birne 448 638 gelb',
'zitrone 361 098 gelbgrün'
];
Array diff:
$VAR1 = [
'birne 448 038 gelb',
'birne 448 638 gelb',
'orange 361 098 orange',
'zitrone 361 098 gelbgrün'
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my (@diff, @only_array_1, @only_array_2);
my (%h1, %h2);
$h1{$_} = 1 foreach (@erg1);
$h2{$_} = 1 foreach (@erg2);
a1: foreach my $k1 (keys %h1) {
if( exists $h2{$k1}) {
push @diff, $k1;
delete $h2{$k1};
next a1;
}
push @only_array_1, $k1;
}
#$listbox_right->insert('end', sort @diff); # hier gibt er mir wieder nutzlose Werte aus
$listbox_right->insert('end', "=============Only User 1===================================");
$listbox_right->insert('end', sort@only_array_1);
$listbox_right->insert('end', "==============Only User 2==================================");
$listbox_right->insert('end', sort keys %h2);
$listbox_right->insert('end', "===========================================================");
![]() |
|< 1 2 >| | ![]() |
14 Einträge, 2 Seiten |