in reply to removing repeated elements from one array

To preserve order when reducing the list like that, use List::MoreUtils uniq method.
use List::MoreUtils qw(uniq); my @a=qw(1 3 4 1 2 3); print join("-",uniq(@a))."\n";
Prints
1-3-4-2
Update:And if you dont't want to install and import an entire module for a simple task like this you could just do what List::MoreUtils does internally:
my %h; @a=map { $h{$_}++ == 0 ? $_ : () } @a;
(though personally I'd go for using the module in most cases, it's more self-documenting).

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan