我正在尝试从我的Perl脚本所在的目录中加载Digest :: MD5(因为我无法在我的环境中通过PPM安装。)
我尝试了很多组合,但是在Windows上看起来适用于Strawberry perl,但在Red Hat linux中却没有,它有一个带有MD5.pm,base.pm和file.pm的Digest目录。然后我使用此代码加载模块。
use FindBin;
use lib "$FindBin::Bin/";
use Digest::MD5 qw(md5_hex);
但是我收到了这个错误:
无法在@INC中找到模块Digest :: MD5的可加载对象(@INC 包含:/ opt / myapp / bin / script / / usr / local / lib64 / perl5 / usr / local / share / perl5 / usr / lib64 / perl5 / vendor_perl / usr / share / perl5 / vendor_perl / usr / lib64 / perl5 / usr / share / perl5。)at ./app.pl第21行。在./app.pl第21行的require中编译失败。 BEGIN失败 - 汇编在./app.pl第21行中止。
我厌倦了把头撞在桌子上,有人有什么想法吗?
这被标记为一个非常不同的问题的完全重复。这不是一个缺少的模块,它是关于直接包含perl脚本的模块,因此可以打包和安装它,而无需通过PPM或CPAN等安装模块。
答案 0 :(得分:0)
您可能没有意识到::
中的Digest::MD5
意味着MD5.pm应该位于名为Digest的父文件夹/目录中。创建一个名为Digest的目录,将MD5.pm移动到它中,你应该没问题。
让Perl在备用位置查看的其他方法是设置环境变量PERL5LIB
setenv PERL5LIB /opt/myapp/bin/script
或者对@INC
的操纵一般不赞成BEGIN {
push @INC, "/opt/myapp/bin/script";
}