Removing duplicates from arrays in Perl
Posted Sun, 20 Jun 2004
After needing to do this in a project of mine, I went googling and found, as expected, a wide variety of solutions.
Solutions ranged from using map, foreach, grep, etc.. All using things like a temporary hash to count instances and ensure uniqueness - but I remembered that hashes have unique keys and that hashes are often treated the same way as arrays in perl, so my solution is as follows:
my %foo; #Temp var my @a = qw (hello there hello how are you today there what now hello hello hello); %foo = @a; @a = keys(%foo);
I also have a one-liner version:
# Assumedly, @a is already defined and has stuff in it, perhaps...
@a = do { my %foo = @a; keys(%foo) };