in reply to Pause a perl script

A program/process/thread can only be doing one thing at a time unless you fork the process or start a new thread. If the program thinks it is running a Tk program then it will have to wait for the Tk program to finish. It sounds like a case for fork and using something like a pipe for interprocess communication (or you could have your initial application periodically check for some other signal that the Tk script has done what it needs to do).