Я плохо знаком с Perl. И я использовал следующий код от одного форума для соединения с одним из сервера. но бросок сообщений об ошибках
[root@Cus]# cat tt.pl
#!/usr/bin/perl
use Net::Telnet;
$telnet = new Net::Telnet ( Timeout=>2, Errmode=>'die');
$telnet->open('10.0.0.28');
$telnet->waitfor('/login:/');
$telnet->print('administrator');
$telnet->waitfor('/Password:/');
$telnet->print('test');
$telnet->waitfor('/switch8-12>/');
$telnet->print('whoamI');
$output=$telnet->waitfor('/switch8-12>/');
print $output;
Но бросок после сообщений об ошибках.
[root@Cus]# ./tt.pl
./tt.pl: line 3: use: command not found
./tt.pl: line 4: syntax error near unexpected token `('
./tt.pl: line 4: `$telnet = new Net::Telnet ( Timeout=>2, Errmode=>'die');'
Я не вижу этих строк в верхней части вашего скрипта, которые необходимы для всех модулей и скриптов perl:
use strict;
use warnings;
Вы не сказали, в какой среде это работает - вы используете bash в Linux? Какая бы оболочка вы ни использовали, она не понимает shebang ( #! / Usr / bin / perl
) и пытается выполнить сценарий на своем собственном языке вместо того, чтобы вызывать Perl для его запуска.
Попробуйте использовать / bin / bash, и тогда ваша строка shebang будет работать. Или просто вызовите perl явно: perl tt.pl
.
Я предполагаю, что вы используете странную версию unix, которая не соблюдает #!
и пытается запустить скрипт через shell, а не через perl.
Другая причина, по которой это может произойти, - если tt.pl
начинается с пустой строки. В этом случае #!
должен появиться в самом начале файла.
Попробуйте запустить perl tt.pl
и посмотрите, что произойдет.
У меня были похожие сообщения об ошибках, и я обнаружил, что причина в том, что файл perl использовал неправильную кодировку символов (не спрашивайте меня, почему это имело значение для perl). Perl был установлен правильно, пути были в порядке, синтаксис скрипта был идеальным (я даже получил ошибку «use: command not found» для однострочного скрипта «Hello World!»). Убедитесь, что tt.pl - это UTF8 без спецификации.