我是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');'
答案 0 :(得分:13)
我的猜测是你使用了一种不尊重#!
行的奇怪的unix,并试图通过shell而不是perl来运行脚本。
可能发生这种情况的另一个原因是tt.pl
以空行开头。 #!
必须出现在文件的最开头。
尝试运行perl tt.pl
,看看会发生什么。
答案 1 :(得分:4)
我有类似的错误消息,并发现原因是perl文件使用了错误的字符编码(不要问我为什么这对perl很重要)。 Perl安装正确,路径有序,脚本语法很完美(我甚至在一行“Hello World!”脚本中得到了“use:command not found”错误)。检查tt.pl是否为UTF8 no-BOM。
答案 2 :(得分:3)
正如一条评论所说“看起来在开头就有一个CR”
如果你绝望地在这里......
然后运行d2u script.pl
d2u
- > dos to unix。
答案 3 :(得分:1)
我没有在脚本顶部看到这些行,对于所有perl模块和脚本都是必需的:
use strict;
use warnings;
你没有说这是在运行哪个环境 - 你在Linux上使用bash吗?无论你使用什么shell都不理解shebang(#!/usr/bin/perl
),并试图用自己的语言执行脚本而不是调用Perl来运行它。
尝试使用/ bin / bash,然后你的shebang线就可以了。或者,只需显式调用perl:perl tt.pl
。
答案 4 :(得分:0)
如果/usr/bin/perl
文件为空
答案 5 :(得分:0)
我遇到了同样的问题,发现#!/ usr / bin / perl没有perl。 perl -v或/ usr / bin / perl -v都没有工作。
我为perl做了一个find / -name,然后从/ usr / bin添加了一个符号链接到实际位置
perl -v -bash:perl:找不到命令 / usr / bin / perl -v -bash:/ usr / bin / perl:没有这样的文件或目录
find / -name perl 的/ opt / ISS /斌/的perl5 / perl的 的/ opt / ISS / bin中/ perl的
ln -s / opt / ISS / bin / perl / usr / bin / perl perl -v
这是为x86_64-linux构建的perl 5,版本14,subversion 1(v5.14.1)
版权所有1987-2011,Larry Wall
Perl只能根据艺术许可或条款的条款进行复制 GNU通用公共许可证,可以在Perl 5源代码包中找到。
应该在上面找到Perl的完整文档,包括FAQ列表 这个系统使用“man perl”或“perldoc perl”。如果你有权访问 互联网,将您的浏览器指向http://www.perl.org/,即Perl主页。
/ usr / bin / perl -v
这是为x86_64-linux构建的perl 5,版本14,subversion 1(v5.14.1)
版权所有1987-2011,Larry Wall
Perl只能根据艺术许可或条款的条款进行复制 GNU通用公共许可证,可以在Perl 5源代码包中找到。
应该在上面找到Perl的完整文档,包括FAQ列表 这个系统使用“man perl”或“perldoc perl”。如果你有权访问 互联网,将您的浏览器指向http://www.perl.org/,即Perl主页。
答案 6 :(得分:0)
在脚本顶部使用#!/usr/bin/env perl
。