为什么我在Perl的PAR中得到“版本(5.12.2)与可执行版本不匹配”的信息?

Hor*_*nes 5 perl par

当我运行以下命令从Perl脚本中创建可执行文件时:

pp -o process_target_mode_data Process_Target_Mode_Data.pl
Run Code Online (Sandbox Code Playgroud)

我得到以下错误输出:

 Perl lib version (5.12.2) doesn't match executable version (v5.12.0) at /home/Neil/ActivePerl-5.12/lib/Config.pm line 50.

Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
Compilation failed in require at -e line 459.

/home/Neil/ActivePerl-5.12/site/bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file 'parleNrP2Xi' at /home/Neil/ActivePerl-5.12/site/lib/PAR/Packer.pm line 1172, <DATA> line 1.
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释发生了什么事以及如何解决这个问题?

请求信息brian d foy:

[bash-3.2] [Neil @ willy] $,该页
/home/Neil/ActivePerl-5.12/site/bin/pp

[bash-3.2] [Neil @ willy] $ /home/Neil/ActivePerl-5.12/site/bin/pp -o process_target_mode_data Process_Target_Mode_Data.pl
Perl lib版本(5.12.2)与/home/Neil/ActivePerl-5.12/lib/Config.pm第50行的可执行版本(v5.12.0)不匹配。
在/home/Neil/ActivePerl-5.12/lib/Errno.pm的第8行中,需求中的编译失败。
BEGIN失败-在/home/Neil/ActivePerl-5.12/lib/Errno.pm第8行中中止编译。
编译在/home/Neil/ActivePerl-5.12/lib/File/Temp.pm第148行中的require失败。
BEGIN失败-在/home/Neil/ActivePerl-5.12/lib/File/Temp.pm第148行中中止编译。
在/home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm第14行,要求中的编译失败。
BEGIN失败-在/home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm第14行中,编译中止。
编译在-e行459中的require中失败。
/home/Neil/ActivePerl-5.12/site/bin/pp:无法从'PAR :: StrippedPARL :: Static'中提取一个parl到/home/Neil/ActivePerl-5.12/site/lib/PAR中的文件'parludZfldz'中/Packer.pm第1172行,第1行。
[bash-3.2] [Neil @ willy] $  


[bash-3.2] [Neil @ willy] $ /home/Neil/ActivePerl-5.12/bin/cpan -l | grep PAR
PAR 1.002
PAR :: Dist 0.47
PAR ::重0.12
PAR ::过滤器0.03
PAR :: SetupTemp 1.002
PAR :: SetupProgname 1.002
PAR :: Packer 1.006
PAR :: StrippedPARL :: Dynamic 0.958
PAR :: StrippedPARL :: Static 0.958
PAR :: StrippedPARL :: Base 0.975
PAR :: Filter :: Bytecode undef
PAR :: Filter :: Bleach undef
PAR :: Filter :: Obfuscate undef
PAR :: Filter :: PatchContent undef
PAR :: Filter :: PodStrip undef
应用程式::包装程式:: PAR 0.91

Eth*_*her 3

Perl lib 版本 (5.12.2) 与可执行版本 (v5.12.0) 不匹配

Perl 安装的某些部分的版本与其他部分不同。更具体地说,如果您查看/home/Neil/ActivePerl-5.12/lib/Config.pm第 50 行,您将看到正在执行的 Perl 版本(5.12.0)与正在使用的 Config.pm 库版本(5.12.2)进行了显式比较。

如果您执行 ActivePerl 5.12.2 的新安装(以使所有组件达到相同版本),则此错误应该消失。

  • @tsee 我使用 PPM 从我的安装中删除了 PAR::Packer。然后我使用 cpanp 重新安装它。它工作完美 - 问题已解决。感谢您的建议。 (3认同)