my %all; while(<>) { my ($k,$v)=split/,/; $all{$k}.=",$v"; } print map { "$_, $all{$_} "} keys %all;