假设我从http://guest.engelschall.com/~sb/download/下载了Date::Calc
。
现在,我有一个脚本xxx.pl
,它与我从上面的链接下载的未修改的“东西”位于同一目录中
当解开时,它会创建一个包含大量内容的“Date-Calc-5.6”文件夹。
如何在Date::Calc
中加入xxx.pl
? (我不断收到“无法在@INC中找到Date / Calc.pm”错误)
答案 0 :(得分:7)
首先需要install the module。
在@INC
语句中,指定包含Perl模块的目录。或者使用语句:use lib "path"
,以便能够通过其他use
语句加载模块。
答案 1 :(得分:2)
您必须安装模块。在大多数情况下,最好通过忽略源代码tarball和using the cpan utility(在* nix上)或PPM管理器(在ActivePerl for Windows上)来实现。
答案 2 :(得分:1)
安装是首选方法,但如果您只想在不安装的情况下尝试安装,则可以执行此操作。
use strict;
use warnings;
use lib '/home/jeremy/Desktop/Date-Calc-5.8/lib';
use Date::Calc;
请切换我的目录,解压缩您的目录。另请阅读lib。
答案 3 :(得分:1)
您不一定需要构建和安装模块。如果模块是纯Perl并且构建过程没有创建任何新的代码文件,那么您可以在“仍然在框中”时使用模块。假设是这种情况,有多种方法可以做到这一点。
编辑:看起来Date::Calc
不是纯粹的Perl。在使用该模块之前,您可能至少需要构建它。
设置$PERL5LIB
环境变量以包含软件包分发目录。
使用perl
开关
-I
perl -I/the/distribution/dir myscript.pl
将-I开关置于#! (第一)脚本行
#!/usr/bin/perl -I/the/distribution/dir
在脚本中使用use lib
use lib qw(/the/distribution/dir);
use The::Package;
将分发目录放入@INC
变量
push @INC, "/the/distribution/dir";
require The::Package;
或
BEGIN {
push @INC, "/the/distribution/dir";
}
use The::Package;