Nachtrag:
Habe nun folgendes versucht:
@array1 = ("test1|name1|b1","test2|name2|b2","test3|name3|b3","test4|name4|b4","test5|name5|b5");
@array2 = ("test12|name1|b1","test22|name22|b2","test32|name3|b3","test42|name4|b4","test52|name5|b5");
@union = @intersection = @difference = ();
%count = ();
foreach $element (@array1, @array2) { $count{$element}++ }
foreach $element (keys %count) {
push @union, $element;
push @{ $count{$element} > 1 ? @intersection : @difference }, $element;
}
Also @union erhalte ich nun folgende Elemente zurück:
test1|name1|b1
test52|name5|b5
test22|name22|b2
test5|name5|b5
test2|name2|b2
test3|name3|b3
test32|name3|b3
test42|name4|b4
test4|name4|b4
test12|name1|b1
Logisch, keines der Elemente ist doppelt vorhanden.
Jedoch sollte genau diese Operation nur auf die "name" Felder angewandt werden.