http://www.perlmonks.org?node_id=357025


in reply to Using a Tk window within a function

I believe what you're looking for is a Tk::Dialog (update: er, you're right, Tk::DialogBox is what I meant). I can't test it at the moment, but I'm nearly certain that calling $Dialog->Show() (which uses $Dialog->waitVariable(\$var) internally) will process events (ie, allow user interaction) until the dialog is dismissed and then return control to your procedural code, all without a MainLoop.

bbfu
Black flowers blossom
Fearless on my breath