如何定位 perl 模块
Posted
技术标签:
【中文标题】如何定位 perl 模块【英文标题】:How to locate perl module 【发布时间】:2015-12-17 04:38:28 【问题描述】:我在 windows7 pro 上使用 perl5.8.8 for msys。
我使用这个 perl 作为 CGI 和 Apache2.2 for windows。
我采取以下错误按摩..
Can't locate encoding.pm in @INC (@INC contains:
/usr/lib/perl5/5.8/msys
/usr/lib/perl5/5.8
/usr/lib/perl5/site_perl/5.8/msys
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/site_perl/5.8
/usr/lib/perl5/vendor_perl/5.8/msys
/usr/lib/perl5/vendor_perl/5.8
/usr/lib/perl5/vendor_perl/5.8
.)
[为便于阅读添加了换行符。]
这是我的代码
#!/opt/gnu/bin/perl
print "Content-type: text/plain; charset=iso-8859-1\n\n";
use encoding qw(utf8);
encoding.pm 在C:\usr\lib\perl5\5.8\msys\Encode
中,如果我在 DOS 提示符下键入,则没有任何错误消息。
C:\usr\bin>perl -e 'use encoding qw(utf-8)
C:\usr\bin>
其实\usr下的lib是\mingw\msys\1.0.\lib的符号链接
如何找到 encoding.pm?
【问题讨论】:
【参考方案1】:encoding.pm 位于 C:\usr\lib\perl5\5.8\msys\Encode
该目录中的文件名为Encoding.pm
(不是encoding.pm
),它是Encode::Encoding 模块,而不是encoding 模块。
所以听起来您的系统上不存在该模块。这很奇怪,因为它与 Perl 5.8 一起出现,但话又说回来,您使用的是 Perl 古老版本的古老端口。从好的方面来说,encoding 模块是双活的,因此无需重新安装所有 Perl 即可安装它。在msys上具体怎么做,我帮不了你。
它不在你的系统上并不是一件坏事,因为你真的不应该使用那个模块;它的设计存在根本缺陷。但是,在不知道你想通过使用它来实现什么的情况下,我无法告诉你应该使用什么。
【讨论】:
我将文章encodinging
修改为encoding
新问题的调整答案
这不影响我的回答,除了补充一句:你为什么要迁移到这么古老的系统??????
你是认真地问过使用有问题的东西有什么问题吗?
您应该知道,如果您今天移植软件,将其移植到早已停止维护的a version released in 2006 是一个坏主意。这有点像决定将您的办公室搬迁到废弃的办公楼。以上是关于如何定位 perl 模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用多个版本的 Perl 在 Perl 模块中安装脚本?