I have the following general structure that I am using to gather some intitialization data from the user.
my $errormsg; do { setup(); errorcheck(); } until !$errormsg; sub setup { ... create GUI initialization window with user input fields and Win32::GUI::Dialog(); } sub OKbutton_Click { .. gather data and return (-1); } sub ::window_Terminate { return (-1); } sub errorcheck { ... check for errors in user input fields. If error return $errormsg else return(-1) ) For some reason I cannot figure out why main:: keeps creating new windows when there is an error and these windows cannot be terminated with OKbutton_Click or ::window_Terminate. Any suggestions? Syl