I'm suprised you just got Free to wrong pool errors. fork() ususaly causes crashes in my experiance.
Tk is not thread safe, and since fork() on windows is emulated with ithreads perl tends to choke and die.
You could use threads and only call Tk from one thread as the other poster sugests, that is usualy safe.