in reply to Whats wrong with this code.

Maybe you are being bitten by CGI's sticky fields. (Do you have a param named MODE?) Try

print $cgi->hidden(-name=>'MODE', -value=>'new', -override=>1);