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

Brutha has asked for the wisdom of the Perl Monks concerning the following question:

Dear fellows, I use the Net::FTP module to retrieve files from a mainframe machine. Since the provider changed, timeouts occur during communications, here during an getfile via FTP. The code is nothing special, straight from the pod:
use Net::FTP; ... $ftp->get("that.file"); ...
I get the following message when I turn FTP debug on:
Net::FTP=GLOB(0x??????)>>> PORT xxx,xxx,xxx,xxx,198 Net::FTP=GLOB(0x??????)<<< Port request OK. Net::FTP=GLOB(0x??????)>>> RETR FFFFF.XXX Net::FTP=GLOB(0x??????)<<< 125 Sending data set xxx.xxx.xxx Timeout at ... Net/FTP.pm line 471 Net::FTP=GLOB(0x??????)>>> QUIT Net::FTP=GLOB(0x??????)<<< 250 Transfer completed successfully
How do I handle the Timeout error?

Net::FTP seems to have no code to deal with it. I had a short look at the underlying modules Net::Cmd, IO::Socket etc, but could not even find, where the Timeout method is generated.

As there is conversion between the mainframe and the windows client it is not easy to check filesizes to decide, wether the download retrieved the complete or just part of the file.

Any hints, links, tips or help? I use ActiveState Perl 5.6.1 on a W2K machine.

And it came to pass that in time the Great God Om spake unto Brutha, the Chosen One: "Psst!"
(Terry Pratchett, Small Gods)