use strict; my %hash = map { (split /:/, $_ )[0] => (split /:/, $_ )[2] } ; print join ",", sort keys %hash; #key1,key2 __DATA__ key1:useless:value1 key2:useless:value2 #### key1,key2