How can I check if a Perl module is installed on my system from the command line?

前端 未结 10 1211
旧巷少年郎
旧巷少年郎 2020-12-07 14:33

I tried to check if XML::Simple is installed in my system or not.

perl -e \'while (<@INC>) { while (<$_/*.pm>) { print \"$_\\n\"; } }\'
         


        
10条回答
  •  难免孤独
    2020-12-07 15:18

    Bravo for @user80168's solution (I'm still counting \'s !) but to avoid all the escaping involved with aliases and shells:

    %~/ cat ~/bin/perlmod
    perl -le'eval qq{require $ARGV[0]; } 
        ? print ( "Found $ARGV[0] Version: ", eval "$ARGV[0]->VERSION" ) 
        : print "Not installed" ' $1
    

    works reasonably well.

    Here might be the simplest and most "modern" approach, using Module::Runtime:

    perl -MModule::Runtime=use_module -E '
         say "$ARGV[0] ", use_module($ARGV[0])->VERSION' DBI
    

    This will give a useful error if the module is not installed.

    Using -MModule::Runtime requires it to be installed (it is not a core module).

提交回复
热议问题