我正在尝试从命令行解析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模块/库?我需要阅读此日志文件?
答案 0 :(得分:2)
您的Perl安装似乎已经以这种或那种方式搞砸了。我对xampp并不熟悉,但我很难相信他们只捆绑了perl.exe
而没有其余的分发。
在G:\xampp\perl
下,应该有lib
,site
等子目录。
strict
是一个核心编译指示,它的缺席表明您没有正确的Perl安装。
事实上,我刚刚下载了xampp,它在lib
下包含site\lib
和xampp\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\lib
和xampp\perl\site\lib
下,所以
perl -IG:/xampp/perl/lib -IG:/xampp/perl/site/lib mysqldumpslow.pl -s c -t 10
可能就是你需要做的一切。 YMMV,如果您有较旧的XAMPP发行版。