in reply to meaning for the code

Note that unless @cn1_new already contains data, push is not needed. You could use simple assignment like this:

my( @cn1_new ) = grep { !$ss{$_}++ } @cn1_newnnn;

Dave