use strict; use warnings; my @a = (1, 3, 5, 6, 7, 8); my @b = (2, 3, 5, 7, 9); my (@isect, %seen, %isect); foreach my $e (@a) { $seen{$e} = 1 } foreach my $e (@b) { if ( $seen{$e} ) { $isect{$e} = 1 } } @isect = keys %isect; print "@isect\n";