为什么mysqldumpslow.pl在Windows上找不到任何Perl模块?

时间:2010-02-02 16:36:16

标签: windows perl

我正在尝试从命令行解析MYSQL慢查询日志。

进入后:

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

shell返回错误can't locate strict.pm in @INC (@INC contains: .) at mysqldumpslow.pl at line 8. BEGIN failed

在xampp的perl目录中,只有一个文件perl.exe

我是否缺少perl模块/库?我需要阅读此日志文件?

2 个答案:

答案 0 :(得分:2)

您的Perl安装似乎已经以这种或那种方式搞砸了。我对xampp并不熟悉,但我很难相信他们只捆绑了perl.exe而没有其余的分发。

G:\xampp\perl下,应该有libsite等子目录。

strict是一个核心编译指示,它的缺席表明您没有正确的Perl安装。

事实上,我刚刚下载了xampp,它在lib下包含site\libxampp\perl(它缺少文档,但这对于运行Perl并不重要脚本)。

答案 1 :(得分:2)

解决方法是在perl安装中找到strict.pm的位置,并将目录添加到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。)

更新:浏览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发行版。