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

I got this code to work when the remote dirs and files
dont exist but as soon as I try to overwrite files that
are already there, it fails with:
cant put /var/www/accucaps/data/test.cgi, data/test.cgi: Bad file desc +riptor at ./mirror.pl line 121.

Here's my edited sub:
sub checknew ($) { my $localfile = join ( "", $home, @_ ); foreach my $myfiles(@_) { $myfiles=~s/^\///; } if ( -e $localfile && -f $localfile ) { # local file is new, rmt file doesn't exist..transfer $ftp->put( $localfile, @_ ) or die "cant put $localfile, @_: $ +!"; print "ADDED_FILE: @_\n"; $new++; $unchanged--; return 0; }

What gives?

Replies are listed 'Best First'.
Re: Net::ftp prob
by maj12 (Novice) on Oct 24, 2001 at 17:34 UTC
    Nevermind folks - figured it out. I was doing a ftp->cd
    to test if the remote dir existed then forgetting to cd
    back to the parent dir before writing files.