安裝模塊後,都會有對應的文檔,能夠經過perldoc MODULE_NAME
來獲取模塊的使用幫助。html
例如:獲取File::Utils
的使用幫助。linux
perldoc File::Utils
要在perl程序中使用模塊,須要使用use來裝載(load)模塊。例如,File::Basename
模塊:shell
#!/usr/bin/perl use File::Basename;
通常來講,全部要裝載的模塊都會寫在perl程序的開頭,由於use語句是程序編譯期間執行的,並且之後要查看、修改程序中使用的模塊也方便。固然,這並不是必須,能夠在任意地方書寫use語句。函數
裝載模塊後,模塊內的屬性就會導入到當前程序的名稱空間供當前程序使用。例如,File::Basename
模塊提供的兩個子程序是basename()和dirname(),他們分別獲取給定文件路徑的basename和dirname。命令行
#!/usr/bin/perl use File::Basename; my $basename = basename( "/usr/bin/perl" ); my $dirname = dirname( "/usr/bin/" ); print "$basename\n$dirname";
或者,只導入給定的函數:code
use File::Basename ('basename','dirname');
推薦直接用qw()列表的方式,即便只導入一個函數:orm
use File::Basename qw(basename dirname);
函數導入到當前名稱空間後,模塊中的函數可能會和當前程序文件中定義的同名子程序衝突。這時須要指定函數的全名:htm
my $dirname = File::Basename::dirname( "/usr/bin/" );
若是,導入模塊時給出一個空列表,它和不給列表是不同的。也就是說,下面兩種方式是不等價的:element
use File::Basename; use File::Basename ();
前者表示導入模塊的默認屬性,包括一些默認函數。然後者表示什麼都不導入,這時若是要使用這個模塊中的函數,只能使用全名。文檔
另外,有些模塊比較複雜,函數、屬性、方法比較多,通常這時候會提供標籤分組功能,其實它們是一堆函數集合。這樣能夠在導入的時候按照分組標籤來導入。常見的一個標籤是:all
,它表示導入全部屬性。
use CGI qw(:all);
若是模塊還提供了一個名爲tag的標籤,那麼能夠導入這個標籤:
use MODULE_NAME qw(:tag);
想要知道模塊是否提供了標籤,以及提供了哪些標籤,能夠man MODULE
獲取。例如,CGI模塊的man CGI
文檔中有一段內容以下:
Here is a list of the function sets you can import: :cgi Import all CGI-handling methods, such as param(), path_info() and the like. :form Import all fill-out form generating methods, such as textfield(). :html2 Import all methods that generate HTML 2.0 standard elements. :html3 Import all methods that generate HTML 3.0 elements (such as <table>, <super> and <sub>). :html4 Import all methods that generate HTML 4 elements (such as <abbrev>, <acronym> and <thead>). :netscape Import the <blink>, <fontsize> and <center> tags. :html Import all HTML-generating shortcuts (i.e. 'html2', 'html3', 'html4' and 'netscape') :standard Import "standard" features, 'html2', 'html3', 'html4', 'form' and 'cgi'. :all Import all the available methods.
默認狀況下,perl將從@INC
指定的路徑中查找模塊,它就像shell的PATH環境變量同樣。
如下是@INC
的路徑:
[root@xuexi ~]# perl -e 'foreach (@INC){print "$_\n"};' /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base
若是咱們手動安裝的包,或者安裝到了一個非默認的查找路徑下(例如不一樣用戶安裝到了不一樣家目錄下),這時能夠經過在shell中設置PERL5LIB
環境變量,perl會臨時從這個環境變量中去查找模塊。
[root@xuexi ~]# export PERL5LIB="/home/fairy/myperl"
或者,在perl命令行中使用-I
選項,顯式指定待運行程序的模塊查找路徑。
[root@xuexi ~]# perl -I/home/fairy/myperl PERL_PROGRAM
還有幾種更復雜的方法:
BEGIN {unshift @INC,"/home/fairy/myperl"};
語句,使得@INC在編譯期間就加上指定的查找目錄use lib "/home/fairy/myperl";
指定lib查找路徑因爲這些方法都不方便,因此,直接設置PERL5LIB環境變量,或者設置local::lib
便可。