I'm no cgi expert, as I've only ever done one thing on it, but I seem to recall that you could get a delay between forms, if you didn't call close; after posting the form, because even if you indicate end of HTML, the server still thinks it might need to serve extra stuff... hope that helps.
Comment on Re: $cgi->param() values are not updated instantly when read in a subroutine
Needing to call close on STDOUT only comes into play when forking, and the child outlines the parent (perl will close STDOUT automatically on the parent)