CPANが使えない件、バグかも。
http://www.gossamer-threads.com/lists/perl/porters/260169
/System/Library/Perl/5.12/Net/FTP/dataconn.pm
line 54. あたりを編集
sub _close { my $data = shift; my $ftp = ${*$data}{'net_ftp_cmd'}; $data->SUPER::close(); return if !defined $ftp; #Here is added code delete ${*$ftp}{'net_ftp_dataconn'} if exists ${*$ftp}{'net_ftp_dataconn'} && $data == ${*$ftp}{'net_ftp_dataconn'}; } sub close { my $data = shift; my $ftp = ${*$data}{'net_ftp_cmd'}; if(exists ${*$data}{'net_ftp_bytesread'} && !${*$data}{'net_ftp_eof'}) { my $junk; $data->read($junk,1,0); return $data->abort unless ${*$data}{'net_ftp_eof'}; } $data->_close; return if !defined $ftp; #Here is added code $ftp->response() == CMD_OK && $ftp->message =~ /unique file name:\s*(\S*)\s*\)/ && (${*$ftp}{'net_ftp_unique'} = $1); $ftp->status == CMD_OK; }