Я пытаюсь написать скрипт загрузки на Perl, используя Net :: SFTP :: Foreign.
У меня возникла проблема с проверкой, существует ли каталог, а если нет, создаю его.
Net :: SFTP :: Foreign, кажется, просто выдает ошибку и закрывает соединение, если каталог не существует, и никогда не запускает "else"
Вы можете увидеть код ниже, может быть любойВидишь, где я иду не так?
sub uploadtoftp
{
use Net::SFTP::Foreign;
use File::Basename;
use warnings;
my $host=$_[0];
my $user=$_[1];
my $pw=$_[2];
my $home_directory ="/home/testuser";
my $remote_path=$home_directory."/".$name."/".$destination_dir;
if (my $ftp = Net::SFTP::Foreign->new($host,
user => $user,
password => $pw,
autodie => 0))
{
my $destination_dir_proceed=0;
$ftp->find("$remote_path", on_error => sub { print "Creating directory\n"; $ftp->mkdir("$remote_path") });
print $ftp->error;
if($ftp->opendir($remote_path))
{
$destination_dir_proceed=1;
}
if($destination_dir_proceed==1)
{
# --- loop through file list and upload all new files
foreach $filename (split(/ /, $file_list))
{
$ftp->put($filename,$remote_path.$filename);
}
}
else
{
print "cannot reach directory $remote_path\n";
}
}
} # end subroutine uploadtoftp()