2010-02-02 73 views
0

我想從命令行解析一個MYSQL慢查詢日誌。爲什麼mysqldumpslow.pl在Windows上找不到任何Perl模塊?

在進入此:

set PATH=G:\xampp\perl\bin\;%PATH% 
cd /d G:\xampp\mysql\scripts 
perl mysqldumpslow.pl -s c -t 10 

殼返回錯誤can't locate strict.pm in @INC (@INC contains: .) at mysqldumpslow.pl at line 8. BEGIN failed

在XAMPP的perl目錄,僅存在一個文件perl.exe

我是否缺少perl模塊/庫?我需要閱讀這個日誌文件?

+0

哇,這是一個搞糟的'@ INC' ......他們對Perl發行做了什麼? – ephemient 2010-02-02 17:02:27

+0

'perl -V'顯示什麼?你可以在其他Perl腳本中加載模塊,或者這只是mysqldumpslow.pl的問題嗎? – 2010-02-02 17:40:52

+0

perl -v顯示perl v5.8.7,關於文檔 – rrrfusco 2010-02-03 02:34:52

回答

2

一個解決辦法是找到strict.pm的位置,你的Perl安裝的目錄添加到PERL5LIB環境變量,或調用perl-I/path/to/strict.pm/directory選項(參見perlfaq8: How do I add a directory to my include path (@INC) at runtime?)。

如果您發現更多不滿意的依賴項,請繼續將目錄添加到PERL5LIB或其他-I選項,直到您的程序可以運行。

(雖然最終你可能會厭倦這種和修復/重新安裝的perl)

UPDATE:通過1.7.3 XAMPP分佈來看,所有的Perl庫文件都位於xampp\perl\libxampp\perl\site\lib下,所以

perl -IG:/xampp/perl/lib -IG:/xampp/perl/site/lib mysqldumpslow.pl -s c -t 10 

可能是所有你需要做的。 YMMV如果你有一箇舊的XAMPP發行版。

+0

我正在運行1.7.0任何建議。人們真的寫YMMV嗎?我對這些首字母縮略詞不太感興趣。 :) – rrrfusco 2010-02-03 02:32:00

+0

在1.7.2之前,perl是XAMPP的「附件」,但目錄結構(\ perl \ bin,\ perl \ lib,\ perl \ site \ lib)是相同的。如果您沒有這些目錄,請重新安裝。 – mob 2010-02-03 03:51:36

2

你的Perl安裝似乎已經以某種方式搞砸了。我對xampp並不熟悉,但我很難相信他們只捆綁了perl.exe而沒有剩下的分配。

G:\xampp\perl,應該有子目錄,如:libsite

strict是一個核心的編譯和它的缺席表明您沒有正確的Perl安裝。

其實,我剛剛下載xampp,它確實包含xampp\perllibsite\lib(它缺少文檔,但是這並不是運行Perl腳本必要的)。

相關問題