perl - 从当前目录调用 perl 模块

标签 perl perl-module

我需要在远程服务器上测试一个 perl 脚本。我尝试运行它,但我得到了错误

Can't locate Date/Manip.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . 

所以我下载了 DateManip.pm 文件并尝试将其复制到上述位置之一。但我无权在这些地方复制文件。有没有办法可以在我自己的目录中拥有这个 *.pm 文件并从那里调用它,还是我必须将它放在其中一个位置?

最佳答案

执行此操作的正确方法显然是安装 DateManip.pm,但是如果由于某种原因您不能这样做,那么您可以将模块复制到您具有写入权限的任何目录并修改 perl 脚本以包含以下内容:

 use FindBin qw($Bin);
 use lib "$Bin/<relative_path_to_module>";

<relative_path_to_module>是 DateManip.pm 所在目录的相对路径。所以如果模块的相对路径是../lib,你就会有

use FindBin qw($Bin);
use lib "$Bin/../lib";

关于perl - 从当前目录调用 perl 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574311/

相关文章:

java - 在jsp页面上输出perl脚本

perl - 是否有使用 Module::Build 编写测试(和构建)的文档?

xml - 列出文档元素的所有子节点

sql - (Perl)使用SQL::Abstract为DBI创建查询

perl - 我如何知道机器上的特定 Perl 安装最初提供了哪些模块?

perl - perl中的字符串数组排序问题

perl - 我可以在包中注入(inject) perl sub 吗?

Mysql - 更新时间戳 from_unixtime 删除该行

perl - 为什么 Perl 在我的 CGI 脚本中提示 "Use of uninitialized value"?

perl - 使用系统命令将 stdout 和 stderr 输出重定向到文件在 perl 中不起作用