use strict; my $prev; while () { next if /^\s*$/; chomp (my ($curr, $val) = split /,\s+/); print $prev ? "\n" : "", $prev = $curr if $curr ne $prev; print ", $val"; } print "\n"; __DATA__ a, 1 aa, 3 aa, 5 aa, 8 b, 2 b, 3 bb, 5