簡體   English   中英

如何檢查系統中是否安裝了 Perl 模塊

[英]How to check if the Perl Module is been installed in system or not

我在以下位置安裝了 Perl 模塊( Net::Telnet ): /home/vinod/VK_Scripts/Practices/lib

我正在執行下面的命令來檢查模塊是否存在於系統中或不使用下面的命令 -

perl -MNet::Telnet -e 'print "Installed\n"'
vinod@vinod-VirtualBox:~/VK_Scripts/Practices$ perl -MNet::Telnet -e 'print "Installed\n"'
Can't locate Net/Telnet.pm in @INC (you may need to install the Net::Telnet module) (@INC contains: /home/vinod/perl5/lib/perl5/5.30.0/x86_64-linux-gnu-thread-multi /home/vinod/perl5/lib/perl5/5.30.0 /home/vinod/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/vinod/perl5/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base).
BEGIN failed--compilation aborted.

因此,我已按照@ikegami 在線程中的建議將 lib 路徑添加到 PERL5LIB。

命令是——

export PERL5LIB=/home/vinod/perl5/lib/perl5:/home/vinod/VK_Scripts/Practices/lib

現在,當我使用相同的命令檢查系統中是否存在模塊時,使用以下命令返回true。

vinod@vinod-VirtualBox:~/VK_Scripts/Practices$ perl -MNet::Telnet -e 'print "Installed\n"'
Installed

所以,這里的問題是有沒有可能我可以檢查模塊是否存在於perl -MNet::Telnet -e 'print "Installed\\n"'命令本身的可能位置,而PERL5LIB之前export它們exportPERL5LIB

您可以通過-I參數在命令行本身上為 Perl 解釋器指定包含路徑(一個或多個):

perl -I /home/vinod/VK_Scripts/Practices/lib -MNet::Telnet -e ''

您還可以檢查腳本的退出代碼。 如果已安裝,它將為零,否則您得到的不是零。

可以使用以下命令確認 perl 模塊的安裝

cpan -D {module}

此命令的輸出類似於cpan -D Net::Telnet

C:\...\Examples>cpan -D Net::Telnet
Loading internal logger. Log::Log4perl recommended for better logging
CPAN: CPAN::SQLite loaded ok (v0.217)
CPAN: LWP::UserAgent loaded ok (v6.43)
Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
CPAN: YAML::XS loaded ok (v0.81)
Fetching with LWP:
http://cpan.strawberryperl.com/modules/02packages.details.txt.gz
Fetching with LWP:
http://cpan.strawberryperl.com/modules/03modlist.data.gz
Database was generated on Sat, 22 Aug 2020 09:40:39 GMT
Updating database file ... Done!
Net::Telnet
-------------------------------------------------------------------------
        CPAN: Module::CoreList loaded ok (v5.20200314)
(no description)
        J/JR/JROGERS/Net-Telnet-3.04.tar.gz
        C:\bin\Portable\strawberry-perl\perl\vendor\lib\Net\Telnet.pm
        Installed: 3.04
        CPAN:      3.04  up to date
        Jay Rogers (JROGERS)
        jay@rgrs.com

注意:如果模塊安裝在非默認位置,例如在不受您控制的 Web 服務器上(進入您的主目錄),您必須定義變量PERL5LIB以指向安裝位置,以包含在@INC或 perl 腳本中(s) 利用use lib .... .

注意:perl 命令選項-I允許指定要查看的包含目錄。 如果您不介意輸入長路徑,那么您可以使用它,盡管將此路徑包含在@INC是更可取的方法。 在最后一種情況下,您可以使腳本可執行,只需鍵入script.pl [options] file(s)

文檔: perlrun

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM