my @big = qw( a b c d e f g h i a ); my @small = qw(f c d g c); my %seen; my @wanted = grep{ !$seen{ $_ }++ } @small, @big; print "@wanted"; f c d g a b e h i