open(IN, "template.xyz") or die; chomp($line = < IN >); ($b, @xyz) = split /\s+/, $line; while (chomp($line = < IN >)) { ($bb, @xyzvals) = split /\s+/, $line; for ($i=0; $i<@xyzvals; $i++) { $s{$bb}{$xyz[$i]} = $xyzvals[$i]; } } close(IN);