Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Isn';t List::Util是标准Perl发行版的一部分吗?_Perl_List_Cygwin_Activestate - Fatal编程技术网

Isn';t List::Util是标准Perl发行版的一部分吗?

Isn';t List::Util是标准Perl发行版的一部分吗?,perl,list,cygwin,activestate,Perl,List,Cygwin,Activestate,在某个系统上,我运行的是一个perl脚本,它失败的原因是 无法在\searchCobolPgms.ps第7行的@INC(@INC-contains:/ActiveState/perl/lib/ActiveState/perl/site/lib.)中找到List/Util.pm。 现在奇怪的是,在将代码部署到失败的系统之前,我在笔记本电脑上运行了它,它运行得很好。这两个系统的不同之处在于,在我的笔记本电脑中,我使用的是Cygwin,perl与之捆绑在一起,并且所述的失败系统已经失效 所以现在我很困

在某个系统上,我运行的是一个perl脚本,它失败的原因是

无法在\searchCobolPgms.ps第7行的@INC(@INC-contains:/ActiveState/perl/lib/ActiveState/perl/site/lib.)中找到List/Util.pm。

现在奇怪的是,在将代码部署到失败的系统之前,我在笔记本电脑上运行了它,它运行得很好。这两个系统的不同之处在于,在我的笔记本电脑中,我使用的是Cygwin,perl与之捆绑在一起,并且所述的失败系统已经失效

所以现在我很困惑。Isn;t List::Util是标准perl发行版的一部分吗? 我困惑的原因是什么

  • List/Util.pm位于i686 cygwin下
  • ActiveSync安装没有List/Util.pm

  • List::Util仅在5.7(开发版本)中添加到core,包含List::Util的perl的第一个稳定版本是5.8.0。因此,虽然它在cygwin下安装的perl 5.10发行版中,但调用的perl 5.6.1 ActiveState可执行文件中没有它。您应该将ActiveState perl至少更新为5.8.0,然后它将拥有您需要的模块


    这里有一个链接,可以找到包含核心模块的所有perl版本:

    当我选中
    核心列表时,我得到:

    corelist List::Util
    List::Util was first released with perl v5.7.3
    
    您的perl版本似乎是5.6.1,在这种情况下,
    List::Util
    不会成为核心安装的一部分

    从路径
    c:\cygwin\lib\perl5\5.10
    判断,似乎您的cygwin版本至少为5.10,但您将注意到,cygwin路径不在其他perl版本的
    @INC
    中。它们很可能是单独安装的,因此不共享库


    更新ActiveState perl,一切都会好起来

    我怀疑您正在使用的perl的古老版本不包括它。它并不总是核心库的一部分。@BrianRoach,是的,你的猜测是正确的。这就是问题所在。Perl5.6.1已经有十多年的历史了。请更新到最近的内容。我推荐草莓,谢谢。这对我来说很有意义。不幸的是,我不能那么容易地更新ActiveState perl,因为这意味着除了整个认证链之外,我还必须处理整个法律和版权事务。因此,这意味着我必须改变我的脚本,不使用List::Util。再次感谢esp提供的链接:-)好的,您也可以只安装List::Util而不更新ActiveState。CPAN上1.23_03版有一个名为Scalar List Utils的包,它似乎与perl 5.6兼容,自述文件中列出了一个警告:-至少您需要通过法律部门了解的内容较少:)您也没有理由找不到打算安装在perl 5.6上的真正旧版本的List::Util。列表::Util 1.06_00是添加到core的版本,所以之前的任何版本都打算安装在perl 5.6上。您可以在Thank TLP从BackPAN获得所有版本的软件包。当然,现在我明白了。我刚从DAN那里得到链接,它将帮助我进行兼容性编码:-)
    c:\cygwin\lib\perl5\5.10>find . -name Util.pm
    ./CGI/Util.pm
    ./i686-cygwin/Hash/Util.pm
    ./i686-cygwin/List/Util.pm
    ./i686-cygwin/Scalar/Util.pm
    
    corelist List::Util
    List::Util was first released with perl v5.7.3