my $match = "foo1\nfoo2\nfoo3\nfoo4\nfoo5\nfoo3\nfoo2"; print '$match = ', "\n", $match, "\n\n"; my @match_to_array = split /\n/, $match; print '@match_to_array = ', "@match_to_array \n\n"; my %seen = (); my @r = (); foreach my $a (@match_to_array) { unless ($seen{$a}) { push @r, $a; $seen{$a}++; } } print '@r = ', "@r";