繁体   English   中英

从当前目录调用perl模块

[英]Calling perl module from current directory

我需要在远程服务器上测试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还会查看模块的当前目录(运行位置)。 所以以下内容将起作用:

./your_program.pl     <= "use DateManip"
./DateManip.pm

如果模块名为Date :: Manip,则结构必须如下所示:

./your_program.pl     <= "use Date::Manip"
./Date/
./Date/Manip.pm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM