in reply to Brackets are driving me insane....

Comments on closing brackets can be quite useful for keeping track of flow and bracket symmetry. I went through your sub commenting the closures and the problem quickly revealed itself:
sub setData { my($zero) = chr(0); my($one) = chr(1); my($two) = chr(2); open(NDAT,">$path/trivia_dat.cgi"); foreach $i (0..($n_q - 1)) { print NDAT "#"; print NDAT $INPUT{"q$i"}; print NDAT "$zero"; foreach $j (0..($n_a - 1)) { if($INPUT{"q$i-c"} eq $j) { print NDAT $INPUT{"q$i-a$j"}; print NDAT "$two"."$one"; }# if elsif($j < ($n_a - 1)) { print NDAT $INPUT{"q$i-a$j"}; print NDAT "$one"; }# elsif else { print NDAT $INPUT{"q$i-a$j"}; print NDAT "\n"; }# else }# foreach close(NDAT); }# foreach
Oops!