open my $fh, '-|', 'sort', $filename or die; chomp(my $line = <$fh>); my ($prev_key, $prev_value) = split /,,/, $line; while (<$fh>) { chomp; my ($key, $value) = split /,,/; if ($prev_key eq $key) { $prev_value .= $value; } else { print "$prev_key,,$prev_value\n"; ($prev_key, $prev_value) = ($key, $value); } } print "$prev_key,,$prev_value\n";