Я являюсь 1 однодневный на Perl, проходили через API doc here, есть несколько основных вопросовPerl SFTP: как проверить удаленный файл оленьей кожи существовать
$sftp = Net::SFTP::Foreign->new($host, autodie => 1);
my $ls = $sftp->ls("/bar");
# dies as: "Couldn't open remote dir '/bar': No such file"
Вопрос
- с autodie выйдет соединение будет автоматически закрыто?
- Мы видим в приведенном выше примере, как использовать папку, аналогичный синтаксис также работает для файла?
Или что-то в этом смысле имеет смысл?
my $sftp = Net::SFTP::Foreign->new($host, autodie => 1);
$sftp->find("/sdfjkalshfl", # nonexistent directory
on_error => sub { print "foo!\n";sftp->disconnect();exit; });
Я пытался запустить следующий код на моем окна машины
use Net::SFTP::Foreign;
my $host = "demo.wftpserver.com";
my $sftp = Net::SFTP::Foreign->new($host ,ssh_cmd => 'plink',autodie => 1);
my $ls = $sftp->ls("/bar");
Но я получаю ошибку
«палить» не распознается как внутренней или внешней командой,
Однако, когда я запустил plink из командной строки Windows, он отлично работает !!
Большое спасибо за ваш быстрый ответ (1) за plink Я использую Padre Perl IDE, не уверен, что установка PATH отличается для Windows & Padre ... можете ли вы, пожалуйста, посоветуть (2), можно найти для проверки файла имя или только ls могут использоваться – Lav
2) Документы говорят, что поиск выполняется рекурсивно. Думаю, это сработает. Почему бы вам не попробовать. 1) У меня нет опыта работы с Padre, и у меня нет машины Windows, доступной для тестирования. Попробуйте предоставить полный абсолютный путь. – simbabque
my $ sftp = Net :: SFTP :: Foreign-> new ($ host, ssh_cmd => 'C: /plink/plink-1.07-dos/plink',autodie => 1); или my $ sftp = Net :: SFTP :: Foreign-> new ($ host, ssh_cmd => C: \ plink \ plink-1.07-dos \ plink ', autodie => 1); .... выше строки дает мне плохое удаленное сообщение, полученное на test.pl – Lav