in reply to Net::FTP problems

I know what you feel, the same problems with Net::FTP was bothering me for quite a while. What solved it for me was checking all values in use - and wrapping the whole process in an eval.

The code below is a result of fixing things that has gone wrong over time, and now it doesn't crash my program anymore. It uses the Net::FTP default timeout of 10 minutes (if memory serves me right), which doesn't make the program die, and has evals and checks on the things that do make it die:

if ($ftp_address && $ftp_user && $ftp_password) {
    eval {  
        my $ftp = Net::FTP->new($ftp_address, Passive => 1);
        if ($ftp) {
            $ftp->login($ftp_user,$ftp_password);
            $ftp->cwd($ftp_directory) if $ftp_directory;
            $ftp->put($ftp_filename);
            $ftp->quit;
        } else  {
            # FTP object no good
        }
    }; # Eval ends.
   
    warn "error $@" if $@;
}

Replies are listed 'Best First'.
Re: Re: Net::FTP problems
by panaman (Acolyte) on Dec 30, 2003 at 11:20 UTC
    Hi, Thank for your good answer. The "eval" seems to have stopped the being tossed into the OS. thanks