The problem I see with this approach is that while Net::FTP::put() is busy transferring bytes, the GUI is left alone and stops processing user events. It will look 'frozen'.
This thread shows some ways of resolving the dilemma.
Comment on Re: Update Text Widget during FTP in Perl/Tk