#!/usr/bin/perl -w use strict; my $infilename = 'blah.dat'; my $outfilename = 'blah.out'; my (%data); open(DF, $infilename) or die("Can't open $infilename for input: $!\n"); while (my $line = ) { chomp($line); my @parts = split(/\s/, $line, 2); push(@{$data{$parts[0]}}, $parts[1]); } close(DF); open(OUTF, '>' . $outfilename) or die("Can't open $outfile for output: $!\n"); foreach my $k (sort(keys(%data))) { print OUTF "

", join(', ', @{$data{$k}}), "

\n"; } close(OUTF);