foreach my $elA (@arA) { foreach my $elB (@arB) { if ($elA eq $elB) { push @{$all{$elA}}, $elB." - from Array B"; } } foreach my $elC (@arC) { if ($elA eq $elC) { push @{$all{$elA}}, $elC ." - from Array C"; } } }