If that's the case, then why not just use the (much simpler, and easier to read) solution from this reply to the orriginal thread...
my %seen =() ;
@unique_array = grep { ! $seen{$_}++ } @non_unique_array ;
Oh my, that is nicer! Well, that's what's great about Perl Monks. I think
I may not have understood the thread referred to: I thought there was some
issue with this solution where it would fail in some case. If I misunderstood,
thanks for setting it straight for me!
Update (Wed Jul 30 2003 18:02 UTC):
So the rendition of this code which can act like a *NIX filter as well as
handle input as @ARGV, is (using -l to put a final NL on):
*nixprompt$ perl -le '
my %seen = ();
my @ayin = $ARGV[0]? @ARGV : (<STDIN>);
chomp @ayin;
print join "\n", grep { !$seen{$_}++ } @ayin;'
Beautiful!