my @arr1 = qw(2 4 5); my @arr2 = ('1,nfs', '2,afp', '3,cifs', '4,dns', '5,backup'); my %arr1_as_hash; $arr1_as_hash{$_}++ for @arr1; my @arr3 = map { my ($key, $val) = split /,/; $arr1_as_hash{$key} ? $val : (); } @arr2;