#! /usr/bin/perl print "File Location?"; my $data_file = <>; open(DATA, $data_file); my @list; while () { chomp; my (%hash, @rest); ($hash{first}, $hash{date}, @rest) = split(",", $_); for my $r (@rest) { my ($k, $v) = split(' ', $r, 2); $hash{$k} = $v; } push(@list, \%hash); }; my %seen; for (@list) { for (keys %$_) { $seen{$_}++ } }; delete $seen{first}; delete $seen{date}; my @allkeys = ('first', 'date', sort keys %seen); my @keys = (sort keys %seen); open(DATAOUT, ">1.temp"); while() { for my $h (@list) { print DATAOUT join(",", $h->{first}, $h->{date}, map { $_." ".$h->{$_} } @keys), "\n"; } }