有人能指出Perl找不到已安装模块的可能原因吗?
$ ll /usr/share/perl5/Unix/Processors.pm
-rw-r--r-- 1 root root 3.2K Sep 11 12:39 /usr/share/perl5/Unix/Processors.pm
确定,
$ perldoc -l Unix::Processors
/usr/share/perl5/Unix/Processors.pm
好的,但是
$ perl -MUnix::Processors -e1
Can't locate loadable object for module Unix::Processors in @INC (@INC contains: /usr/lib/cegma /usr/share/mocat/src /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at -e line 0
Compilation failed in require.
BEGIN failed--compilation aborted.
已修复:我已将已编译的Processors.so
放在.pm
旁边,当它应位于auto
目录中时。
答案 0 :(得分:13)
Unix::Processors
模块有一个XS(C)组件,必须在安装过程中进行编译和链接。错误消息Can't locate loadable object
指的是此组件(共享库)而不是.pm
模块文件本身
这是错误安装模块的症状,并且最常发生在.pm
文件被简单复制到位而不是按perldoc perlmodinstall中所述正确安装的情况下。如果安装已强制,也可能发生这种情况,无论构建和测试阶段是否存在任何错误。