我有一个perl脚本;在我的个人计算机上,运行完全相同版本的perl (5.10.1),它运行得非常好。然而,在服务器机器上,它不仅不能运行,还会给我一些奇怪的错误。它运行得很好,直到最近,我确实检查了所需的软件包是否已安装。
脚本的开头(它卡住的地方):
#!/usr/bin/perl
package Hermes;
$VERSION = 3.5;
use FindBin qw($Bin);
push @INC,$Bin;
push @INC ,"/usr/local/lib/perl5/site_perl/5.10.1/";
require("Hermes_config.pm");
$install_Directory = $Config::install_Directory;
push @INC,$install_Directory; #Fix for running from rc.local
use warnings;
#use strict;
use Safe;
use POE;
use POE::Component::IRC;
use Module::Reload;
use Math::Expression::Evaluator;输出:
Hermes3.0/hermes3.5.pl: 17: package: not found
Hermes3.0/hermes3.5.pl: 18: =: not found
Hermes3.0/hermes3.5.pl: 20: Syntax error: "(" unexpected(在程序开始之前,有15行注释的开源版权声明,因此有行号)。
POE,Module::Reload,和Math::Expression::Evaluator都安装了(根据instmodsh),cpan告诉我FindBin是最新的,重新安装Safe没有帮助,所以它看起来不是一个丢失的包-此外,它没有告诉我一个丢失的包名称,它似乎被“包”这个词卡住了。重新安装Perl没有帮助(使用apt-get install --reinstall perl)。
我最近升级了机器的ubuntu版本;很有可能弄乱了一些东西,所以任何关于从哪里开始查找的提示都将不胜感激。
发布于 2011-07-07 21:30:46
问题是bash正在尝试运行/编译/解释脚本,而不是perl。
#! /usr/bin/perl应该放在你的文件的最上面,不要在上面写东西。
https://stackoverflow.com/questions/6611354
复制相似问题