#!/usr/bin/perl -w use Data::Dumper; my @arA = qw( lion tiger dog cat snake); my @arB = qw( tiger dragon lion); my @arC = qw(dog phoenix); my %all; foreach my $elA (@arA) { foreach my $elB (@arB) { if ($elA eq $elB) { push @{$all{$elA}}, $elB." - from Array B"; } } } foreach my $elA (@arA) { foreach my $elC (@arC) { if ($elA eq $elC) { push @{$all{$elA}}, $elC ." - from Array C"; } } } print Dumper \%all; # Then do other thing with %all