in reply to Is there a way to free the Tk MainLoop without getting into parallel programming?

If you mean all the progress messages are appearing all at once at the end, that is because you are not using
$mw->update;
throw that into the processing loop after you do your ->Insert or whatever you are using to post the messages and they will appear one at a time ($mw being the main window handle).

This is analogous to flushing output to a file stream, etc, etc, when it builds up in a buffer. You cannot set it "unbuffered", but you can do a flush using ->update. You do not need to get into threading or forking just for this.
  • Comment on Re: Is there a way to free the Tk MainLoop without getting into parallel programming?
  • Download Code