Почему делают я получаю 'использование: команда не нашла', когда я запускаю свой скрипт Perl?

Я плохо знаком с 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');'
6
задан brian d foy 25 March 2010 в 16:34
поделиться

3 ответа

Я не вижу этих строк в верхней части вашего скрипта, которые необходимы для всех модулей и скриптов perl:

use strict;
use warnings;

Вы не сказали, в какой среде это работает - вы используете bash в Linux? Какая бы оболочка вы ни использовали, она не понимает shebang ( #! / Usr / bin / perl ) и пытается выполнить сценарий на своем собственном языке вместо того, чтобы вызывать Perl для его запуска.

Попробуйте использовать / bin / bash, и тогда ваша строка shebang будет работать. Или просто вызовите perl явно: perl tt.pl .

1
ответ дан 8 December 2019 в 05:54
поделиться

Я предполагаю, что вы используете странную версию unix, которая не соблюдает #! и пытается запустить скрипт через shell, а не через perl.

Другая причина, по которой это может произойти, - если tt.pl начинается с пустой строки. В этом случае #! должен появиться в самом начале файла.

Попробуйте запустить perl tt.pl и посмотрите, что произойдет.

14
ответ дан 8 December 2019 в 05:54
поделиться

У меня были похожие сообщения об ошибках, и я обнаружил, что причина в том, что файл perl использовал неправильную кодировку символов (не спрашивайте меня, почему это имело значение для perl). Perl был установлен правильно, пути были в порядке, синтаксис скрипта был идеальным (я даже получил ошибку «use: command not found» для однострочного скрипта «Hello World!»). Убедитесь, что tt.pl - это UTF8 без спецификации.

4
ответ дан 8 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: