在perl中将库添加到@INC数组

时间:2009-11-30 18:10:16

标签: perl

我正在运行一个需要Curl.pm lib的脚本才能工作。我使用YUM安装库,现在我试图让我的脚本使用它,但我一直收到错误

Can't locate WWW/Curl.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.6/x86_...

当我在命令行中输入以下内容时:

rpm -ql curl

我明白了:

/usr/bin/curl
/usr/lib64/libcurl.so.3
/usr/lib64/libcurl.so.3.0.0
/usr/share/doc/curl-7.13.1
/usr/share/doc/curl-7.13.1/BUGS
/usr/share/doc/curl-7.13.1/CHANGES
/usr/share/doc/curl-7.13.1/COPYING
/usr/share/doc/curl-7.13.1/FAQ
 ...
/usr/share/man/man1/curl.1.gz
/usr/bin/curl
/usr/lib/libcurl.so.3
/usr/lib/libcurl.so.3.0.0
/usr/share/doc/curl-7.13.1
/usr/share/doc/curl-7.13.1/BUGS
/usr/share/doc/curl-7.13.1/CHANGES
... etc.

上述哪条路径需要包含在我的@INC目录中?我原以为下面的代码可以解决问题放在我的脚本顶部,但我仍然得到同样的错误@INC错误。

BEGIN {
  unshift(@INC, '/usr/lib/libcurl.so.3');
  use WWW::Curl;
}

当我输入

cpan> i /WWW::curl/

我在下面列出了以下列表。我还是难过。我想使用WWW :: curl,我不知道下面(或上面)的哪个路径要添加到@INC!它看起来已经安装好了。我该怎么办?

cpan> i /WWW::curl/
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata 
Database was generated on Mon, 30 Nov 2009 02:55:47 GMT
Module          WWW::Curl       (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Easy (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Form (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Multi (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)  
Module          WWW::Curl::Share (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Simple (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz)
Module          WWW::Curl::Simple::Request (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz)
7 items found

3 个答案:

答案 0 :(得分:8)

您安装的curlWWW::Curl不同。

您需要安装Perl模块WWW::Curl 您应该首先搜索您的操作系统特定的软件包存储库。 如果您在那里找不到它,请使用cpanm进行安装:

$ cpanm WWW::Curl

另见perldoc perlmodinstall

答案 1 :(得分:8)

您已安装curl库。要安装WWW :: Curl模块,请执行以下操作:

yum install perl-WWW-Curl

答案 2 :(得分:2)

我将忽略我看到的那种混乱,只是回答这个问题:

  1. 您不会向@INC添加库,而是添加目录。您添加的目录包含Perl模块,即*.pm个文件。
  2. 为此,您只需使用use lib即可。如果您要添加的目录是/foo/bar
  3. use lib qw| /foo/bar |;