in reply to Determining if an element is already in an array.
I'm sort of new to this, so maybe this is just 'baby talk', but this has always worked for me:
push @arr, $el if !$seen{$el}++;
The hash value $seen{$el} is not incremented until after the test and so is always zero the first time through, non-zero thereafter.