为什么我在安装模块后仍然得到 "Can't locate loadable object for module"?

Why do I get "Can't locate loadable object for module" even after installing the module?

谁能告诉我 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 目录中。

Unix::Processors 模块有一个 XS (C) 组件,必须在安装过程中进行编译和链接。错误消息 Can't locate loadable object 指的是此组件(共享库)而不是 .pm 模块文件本身

这是错误安装模块的症状,最常见的情况是 .pm 文件只是简单地复制到位,而不是按照 perldoc perlmodinstall 中所述正确安装。如果安装被强制,也会发生这种情况,无论构建和测试阶段是否有任何错误。