2010-02-02 83 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脚本必要的)。

相关问题