in reply to remove duplicates from an array!

Not only is this incomprehensible, but the ink is ugly and the paper is from the wrong kind of tree.
-- Professor, EECS, George Washington University
Your array declaration is incorrect and unorderly. Whitespace scattered wildly, tabs not written as such... say rather
@ICE = ( "30F-WKS\t`1781183799.xxxx1'\tIC---;", "30F-WKS\t`1781183799.xxx11'\tIC---;", "ADM34A3F9\t`1781183799.41455'\tIC---;", );
The result you see in %seen indicates that your array @ICE contains 1218 elements, of which none is an array. The elements, if I get correctly what you mean by
30F-WKS (tab) `1781183799.xxx11' (tab) IC---;

are strings with tab separated fields. If you want to make each string into an array and check for uniqueness of their first element, you have to split them and make anonymous arrays of the first element from each split return, along with the original string as the second element, grep the list of anonymous arrays for definedness in %seen (that part of your code is correct) and finally extract the second element (which is the original string) from each anonymous array grep returns:

my @ICEU = map { $_->[1] } grep { !$seen{$_->[0]}++ } map { [ (split / +\t/, $_)[0], $_ ] } @ICE;

Always use -w!

Your second declaration of @ICEU with my masks the first one.

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}