2016-05-24 1 views
0

Это ошибка, я получаю, я скопировал и вставил прямой набор команд с веб-сайта под названием NCBI, которые былиНевозможно вызвать метод «входа» на неопределенное значение на -е линии 1

cd ~ 
    perl -MNet::FTP -e \ 
    '$ftp = new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive => 1); $ftp->login; 
    $ftp->binary; $ftp->get("/entrez/entrezdirect/edirect.zip");' 
    unzip -u -q edirect.zip 
    rm edirect.zip 
    export PATH=$PATH:$HOME/edirect 
    ./edirect/setup.sh 

Я понятия не имею, что искать, потому что я не знаком с этими командами

Edit Таким образом, некоторые вещи были исправлены кем-то из сайта, но я все еще пытаюсь набрать

'perl -MNet::FTP -e '$ftp = new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive => 1); $ftp->login; $ftp->binary; $ftp->get("/entrez/entrezezdirect/edirect.zip");' 

и ничего не происходит, это как если бы я просто набрал «cat», потому что произошла просто пустая строка

+0

Я подозреваю, что Perl нужно сообщить о прокси-сервере? Нет времени, чтобы посмотреть, как это сделать прямо сейчас. – ikegami

ответ

2

Есть много вещей, которые могут пойти не так, как с FTP-соединением, и по крайней мере одна из этих вещей пошла не так для вы. Net::FTP docs for new сказать, что

Если конструктор не удается UNDEF будет возвращено и сообщение об ошибке будет [email protected]

так что вы можете по крайней мере начать диагностировать проблему с

perl -MNet::FTP -e '$ftp=new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive => 1) or print [email protected]' 
+0

Так что ничего не произошло, и тогда это произошло. Net :: FTP: connect: операция была отключена – Jacob

+0

, поэтому некоторые вещи были исправлены кем-то с сайта, но я все еще пытаюсь ввести " perl -MNet :: FTP -e '$ ftp = new Net :: FTP ("ftp.ncbi.nlm.nih.gov", Passive => 1); $ ftp-> login; $ ftp-> binary; $ ftp -> Get ("/ Entrez/entrezezdirect/edirect.zip");» и ничего не происходит, это как если бы я просто набрал «cat», потому что просто пустая строка произошла @mob – Jacob

-1

Конструктор Net :: FTP ничего не возвращает. Это означает, что он не может подключиться к указанному хосту.

Прежде всего, измените свой скрипт, чтобы проверить возвращаемое значение конструктора ($ftp), прежде чем пытаться вызвать метод login.

Вне вашего скрипта вы должны проверить, что вы можете подключиться к хосту через FTP. Если нет, проверьте настройки устройства и брандмауэра.

+0

. Каково было бы возвращаемое значение конструктора ($ ftp), и это не скрипт, он просто командует, что я 'm вставлять в командную строку и как я могу подключиться к хосту через FTP. – Jacob

+0

$ ftp будет находиться, если вы не можете подключиться к FTP-хосту. Если он подключается, то $ ftp будет полностью заполненным объектом (который вы можете вызвать для входа в систему) .... –

+0

Вы можете использовать FTP-клиент для проверки возможности подключения вне вашей предоставленной команды. В Linux вы можете выдать «ftp {host}» –

0

Код он отлично работает для меня. Попробуйте установить Debug на 1 и вставьте сюда вывод:

cd ~ 
    perl -MNet::FTP -e \ 
    '$ftp = new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive => 1, Debug => 1); $ftp->login; 
    $ftp->binary; $ftp->get("/entrez/entrezdirect/edirect.zip");' 
unzip -u -q edirect.zip 
rm edirect.zip 
export PATH=$PATH:$HOME/edirect 
./edirect/setup.sh 
+0

Итак, вот вывод -bash: синтаксическая ошибка возле неожиданного токена '(' – Jacob

+0

Это синтаксическая ошибка bash. Введите в оболочке весь код, ранее вставлен, но добавьте параметр Debug – user3452713

+0

. Аналогичная проблема Невозможно вызвать метод «login» по неопределенному значению на -e строке 1. – Jacob

Смежные вопросы