my @stuff; while () { chomp; my @keysandvalues; my @field = split /,\s*/, $_; foreach $f (@field) { my ($key, $value) = split /\s*=\s*/, $_; push @keysandvalues, $key; push @keysandvalues, $value; } my %record = @keysandvalues; push @stuff, \%record; }