knoppix@Microknoppix:~$ perl -E ' > open my $inFH, q{<}, \ < d_145_1_2- + c_3_1_8-e_74_1_1- > a_100_1_6-c_2_1_6- + b_50_1_2- > c_69_1_17- + b_61_6_1- > c_2_1_2- + a_123_1_1- > d_83_1_1- + c_2_1_5-d_162_1_1- > c_2_1_2- + a_123_1_1- > a_123_1_1- + c_2_1_2- > EOD > > my %seen; > print > map { qq{$_->[ 0 ]\n} } > grep { ! $seen{ $_->[ 1 ] } ++ } > map { chomp; [ $_, join( q{:}, sort split m{ \+ }, $_ ) ] } > <$inFH>;' d_145_1_2- + c_3_1_8-e_74_1_1- a_100_1_6-c_2_1_6- + b_50_1_2- c_69_1_17- + b_61_6_1- c_2_1_2- + a_123_1_1- d_83_1_1- + c_2_1_5-d_162_1_1- knoppix@Microknoppix:~$