use strict; use warnings; use Autodie; open my $FH, '<', 'jzelkowsz.dat'; my %data; while (my $pair = do{ $/ = ', ';<$FH>}) { my ($numeric, $alpha) = split qr/,/, $pair; push @{$data{$numeric}}, $alpha; } foreach my $num (sort keys %data) { $" = ','; $\ = "\n"; print "$num|@{$data{$num}}"; }