$i=0; $j=0; while () { chomp $_; ($fgid[$i], $fvalue, $flat[$i], $flong[$i]) = split /,/, $_; $fval{$flat[$i]}{$flong[$i]}=$fvalue; $i++; }