Can you explain why you have two MainLoop calls?
in reply to Re^2: backgrounding a Tk process
in thread backgrounding a Tk process
Oops, it was a typo, as I tried to setup the sample script. In your case, since the main script was not a Tk app itself, it wasn't needed. The important line in the example is CORE::exit, as explained in the Caveat to perldoc Tk::exit
I updated the example a bit, to show that if you are forking from an existing Tk GUI, the forks must be done first. Otherwise Tk just hangs.