in reply to Perl Tk GUI locking

Maybe you could pass a tied filehandle to Net::FTP::hash() that could call $mw->update() which would allow periodic updating of the window during transfer (update: which would take care of the transfer type but sidestep the extraction time issue).

You could also implement a progress bar this way.