Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: NET::ftp mkdir succeeds but then dies with 501?

by philipbailey (Chaplain)
on May 08, 2009 at 08:33 UTC ( #762776=note: print w/ replies, xml ) Need Help??

Comment on Re: NET::ftp mkdir succeeds but then dies with 501?
Replies are listed 'Best First'.
Re^2: NET::ftp mkdir succeeds but then dies with 501?
by rjc_thatsthat (Initiate) on Mar 01, 2010 at 15:10 UTC
    Just to update - I had to revisit this block of code recently with slightly more experience. Wrapping the code in an eval and viewing the resulting $@ revealed that the mkdir was in fact firing twice in immediate succession, producing the 501 error on the second attempt.
    $ftp->cwd($i2) or die "change directory $i2: ".$ftp->message." / ".$ft +p->code; my @nfiles = $ftp->dir; if(grep {$_ eq $i3} @nfiles){ die "make $i3: already exists"; } else { $ftp->mkdir($i3) or die "make directory ".$ftp->code; }
    Although still not obvious to me exactly where, it looks like code elsewhere was looping over the mkdir without being caught, so I rewrote, removing the eval/dies, which seems to behave as expected.
    push @errs,"cannot change directory from $ftp->pwd to i2: $ftp->messag +e" unless $ftp->cwd($i2); my @nfiles = $ftp->dir; push @errs,"cannot list directory $ftp->pwd: $ftp->message" unless @nf +iles; push @errs,"directory $n2 already exists in $ftp->pwd: $ftp->message" +if grep {$_ eq $n2} @nfiles; push @errs,"cannot make directory $n2 in $ftp->pwd: $ftp->message $ftp +->code" unless $ftp->mkdir($n2); $ftp->quit; if(@errs){ print join "<br />",@errs; }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://762776]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (8)
As of 2016-02-06 21:53 GMT
Find Nodes?
    Voting Booth?

    How many photographs, souvenirs, artworks, trophies or other decorative objects are displayed in your home?

    Results (236 votes), past polls