It sounds as if you're network may be causing these problems. In the code below remove:
or die "can't get file: $!"
and maybe use a loop to ensure that timeout errors are anticipated and the get reexecuted?
foreach my $file (@Flist)
{
$ftpobj->get($file) or die "can't get file: $!";
}