perl模块的有关问题

  • 查看perl模块的安装目录
    perl -e '{print "$_\n" foreach @INC}'
  • 查看已经安装的模块
    instmodsh
  • 查看perl模块的安装路径
    比如查看Math::Random::MT::Auto的安装路径
    perldoc -l Math::Random::MT::Auto
  • perl安装模块
    cpan Math::Random::MT::Auto
  • 安装过程中可能遇到以下问题,
    'YAML' not installed, will not store persistent state
    解决方法是
    perl -MCPAN -e 'install "YAML"'
    然后再次安装
    cpan Math::Random::MT::Auto
  • 但是会遇到下面的问题,那么就先安装缺少的模块
    《perl模块的有关问题》 image.png
    sudo cpan Exception::Class
    然后在次安装
    sudo cpan Math::Random::MT::Auto
  • 有时会遇到缺少版本头文件的问题

    《perl模块的有关问题》 image.png

解决方法是试着创建一个新的cpan文件,然后再重新安装:
cd && mv .cpan .cpan-bak
sudo cpan Statistics::Distributions
(因为我不知道如何在非root情况下安装,所以就只能先用管理员安装了)

  • 在使用perl时,有时安装过模块后,运行程序还是出错,这是可以对脚本进行修改,
    #!/bin/perl
    改为
    #!/bin/env perl
    这是因为可能你有两个perl,但是你安装模块时使用的perl和运行时调用的perl不是同一个导致的
  • 模块的调用
    在调用perl模块时,如果没有在环境变量中,就可以使用下面的语句在调用之前指定模块的位置,首先就是确定模块的路径
    方法一:
    perldoc -l DBI #参数-l Display the module's file name
    方法二:
    perl -MDBI -e 'print $INC{"DBI.pm"}'
    然后可以在脚本的开头添加路径
BEGIN {
unshift @INC,
qw(
/pub/anaconda3/lib/perl5/site_perl/5.22.0/x86_64-linux-thread-multi  #模块的路径
/pub/anaconda3/lib/perl5/site_perl/5.22.0  #模块的路径
/pub/anaconda3/lib/perl5/site_perl  #模块的路径
);
}

或者可以在此环境下perldoc中进行修改

参考:

无root权限时安装perl模块
perl自定义模块的调用
查看Perl模块安装路径
Linux 检查是否安装perl模块及列出所有已安装的perl模块(安装路径、版本号)

    原文作者:灵动的小猪
    原文地址: https://www.jianshu.com/p/eaec686426ed
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞