Perl 程式設計/程式碼重用(模組)
Perl 模組(以pm副檔名結尾的檔案)是 Perl 程式碼檔案,可以在程式之間重複使用。有一個名為 CPAN(Comprehensive Perl Archive Network)的 Perl 模組線上儲存庫,地址為http://cpan.org。許多這些模組隨 Perl 標準提供,但其他模組必須根據需要安裝。
有數千個 Perl 模組可以做任何事情,從建立臨時檔案到呼叫亞馬遜網路服務。如果您知道如何查詢、安裝和使用合適的 Perl 模組,這些模組可以輕鬆快速地編寫您的應用程式。如果您想編寫自己的 Perl 模組,最好的方法是先在http://Search.cpan.org搜尋,以確保您不會重複造輪子。
Perl 模組有兩種主要風格
- 函式式
- 面向物件
一些 Perl 模組同時使用這兩種方法。
函式式 Perl 模組的使用方式如下
use Foo qw/bar/; # Import the name of the subroutine you want to use. print bar();
要使用面向物件的 Perl 模組,您需要執行以下操作
use Foo; my $foo = Foo->new(); print $foo->bar; #call Foo's bar method and print the output.
找到您想要的 Perl 模組http://cpan.org,並下載壓縮檔案。解壓並解壓縮檔案
tar -zxvf MyModule.tgz
然後進入此目錄,並按照 README 或 INSTALL 檔案中的說明進行操作。
您也可以使用一個名為cpan的命令列程式,如果您已安裝它
sudo cpan -imt Module::I::Want
Perl 模組與 Perl 指令碼在兩個關鍵且簡單的方式上有所不同。不要用“#!/path/to/perl”開頭,而是用以下內容開頭
package My::Module::Name;
您需要用一個真值結束模組,因此常見的做法是在檔案末尾執行此操作
1;
以下是一個有效的 Perl 模組
package My::Module::Name; 1;
我們建立一個名為ExampleModule.pm的新檔案,並在其中包含以下程式碼
package ExampleModule;
use strict;
use base "Exporter";
our @EXPORT = qw/hello_world/;
sub hello_world {
print "Hello, World!\n";
}
1;
我們可以透過執行
perl -c ExampleModule.pm
來測試語法是否有效如果一切正常,它將打印出“ExampleModule.pm 語法正確
”。否則,您可以使用打印出的訊息進行除錯。
#!/usr/bin/perl use ExampleModule; hello_world(); exit;
現在,我們可以在指令碼中使用它來檢視它是否有效
瞧!您已經建立了一個 Perl 模組。
建立 CPAN 風格的 Perl 模組CPAN 風格的模組具有測試套件,以及將模組構建到 Perl 庫中的方法。下載並安裝Module::Starter
module-starter --module=My::Module::Name, My::Other::Module::Name, --author="My Name" --email="myemail@gmail.com"
從 CPAN。安裝完成後,您的路徑中將有一個名為 module-starter 的程式。要在命令列建立新模組,請執行以下操作然後,它將為您建立一組目錄,包括一些帶有起始 POD 文件的 shell 模組檔案。Perl 模組將位於建立的目錄內的 lib 目錄中。這些是需要編輯的檔案。您可以將模組的測試放到“t
>perl Makefile.PL >make >make test >sudo make install
”目錄中。要安裝和構建模組,請執行以下操作
如何將引數傳遞給 Perl 模組中的函式package functions;
sub count() {
my ($command_type, $rc) = @_;
[…]
從 Perl 模組呼叫函式時,使用模組名稱、函式名稱以及開頭和結尾的括號。如果要傳遞一些引數,則按順序在括號內完成。模組中的程式碼以以下方式獲取引數在第一行之後,函式count可以使用傳遞的引數$command_type和$rc。主程式呼叫count()
use
sub count() {
use functions;
my $rc;
$rc = […];
[…]
&functions:count("INSERT", $rc);
[…]