我有一個Perl腳本;在我的個人計算機上運行完全相同版本的perl(5.10.1),它運行得非常好。但是,在服務器機器上,它不僅不能運行,而且會帶來奇怪的錯誤。它運行良好,直到最近,我確實檢查了所需的軟件包已安裝。的Perl好像破:「=:未發現」和「包:未找到」
腳本(它扼流圈)的開頭:
#!/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;這很可能會讓事情變得糟糕起來,所以任何有關從哪裏開始尋找的暗示都將值得讚賞。
順便說一句:你可以瞭解與perldiag這樣的錯誤:http://perldoc.perl.org/perldiag.html。尋找「未找到」。 – musiKk
「推式@INC」不應用於前2個案例中,請參閱「lib」雜注。 –
這些不是來自Perl的錯誤。 :) –