my %hash = map { my($k,$v)=split/#/; $k=int($k); ($k,$v) } @array2; for (@array1) { my $k = int($_); next if !exists($hash{$k}); print("$hash{$k} = $_\n"); } #### my %hash; for (@array2) { my ($k, $v) = split /#/; $k = int($k); push @{ $hash{$k} }, $v; } for (@array1) { my $k = int($_); next if !exists($hash{$k}); for my $v (@{ $hash{$k} }) { print("$v = $_\n"); } }