in reply to CSV File Parsing

Try something like this:
use warnings; use strict; # should be used almost always my %new_strings; # create the hash containing new values while (<>) { # read STDIN and/or files specified on the command line chomp; # cut the newline symbol my ($first,$id) = (split ",",$_,3); # read first two columns and disc +ard all others my $numeric = /(,[\d,]+)$/; # use regexp to match numeric values at t +he end of the line unless (exists $new_strings{$id}) { # if this data was found the firs +t time, initialise the value in the hash $new_strings{$id}="$first,$id"; } $new_strings{$id}.=$numeric; # append the numeric data found } foreach (sort keys %new_strings) { # for each datum found in the secon +d column, in alphabet order print "$new_strings{$_}\n"; # print the full string with all numeric +data found }
I hope that was understandable enough. See perlintro warnings strict perlop chomp split perlretut exists print for more.
Sorry if my advice was wrong.