无法在@INC中找到LWP / Simple.pm

时间:2012-05-09 22:13:49

标签: perl

  

可能重复:
  What's the easiest way to install a missing Perl module?

我正在尝试运行a Perl script将SCXML转换为Graphviz DOT。我将脚本的第一行修改为:

#!/usr/bin/env perl

chmod +x文件。当我通过./scmxl2dot.pl运行它时,我看到以下错误输出:

  

无法在@INC中找到LWP / Simple.pm(@INC包含:/opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level / opt / local / lib / perl5 / site_perl /5.12.3 /opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level /opt/local/lib/perl5/vendor_perl/5.12.3/opt/local/lib/perl5/5.12.3 / darwin-multi-2level /opt/local/lib/perl5/5.12.3 / opt / local / lib / perl5 / site_perl / opt / local / lib / perl5 / vendor_perl。)at ./scmxml2dot.pl第14行。<登记/>   BEGIN失败 - 编译在./scmxml2dot.pl第14行中止。

该文件的第14行是use LWP::Simple;

我如何:

  1. 找出我是否安装了这个(模块?)和/或
  2. 获取LWP :: Simple并将其提供给脚本吗?
  3. 这是在OS X 10.7.3和Perl 5.12.3下运行的(如错误中所示)。

3 个答案:

答案 0 :(得分:32)

  1. 你已经确定你没有它(在某处可以找到它)。

  2. perl -MCPAN -e'install "LWP::Simple"'

答案 1 :(得分:6)

  1. 从命令行执行以下操作:

    perl -MLWP::Simple -e 1
    

    如果您没有从上面的命令获得任何输出,则安装该模块;如果您收到错误,则表示未安装

  2. 安装使用

    perl -MCPAN -e'install "LWP::Simple"'
    
  3. 当perl遇到使用My :: Module时,它会遍历包含目录名的内置@INC模块的元素。在每个目录中,它检查是否有一个名为“My”的子目录,如果在该子目录中有一个名为“Module.pm”的文件。

    检查系统上安装了LWP :: Simple模块的位置,并在代码的使用LWP :: Simple语句上方的行下面输入。

        use lib '/usr/local/module';
        use LWP::Simple;
    

答案 2 :(得分:2)

查看Perldoc网页。这将告诉您哪些模块是标准的Perl模块,哪些模块不是。

您还可以使用perldoc命令查明是否已安装Perl模块,如果已安装,则说明其文档。

$ perldoc LWP::Simple

(如果Perldoc不作为命令执行ls -l /usr/bin/perl*。在Mac上,某些Perl命令没有打开执行位。要打开它,请执行sudo chmod a+x /usr/bin/perl

恰好LWP::Simple不是标准的Perl模块,如果你没有它,你将不得不安装它。大多数人已经告诉过你cpan。不幸的是,默认情况下,Mac没有安装所需的命令行开发工具。 You'll have to install them

安装完成后,您可以使用cpan命令安装LWP :: Simple:

$ sudo cpan   #Run cpan and configure it. It takes about 3 minutes
cpan> install LWP::Simple
cpan> exit