Perl 模組和包

模組和包彼此密切相關並且是獨立的。

  • 包:Perl 包也稱為名稱空間,它具有程式中使用的所有唯一變數,如雜湊陣列、陣列、標量和子程式。
  • 模組:模組是可重用程式碼的集合,我們在其中編寫子程式。可以在 Perl 程式中載入這些模組,來用這些模組中編寫的子程式。

什麼是 Perl 模組?

在任何系統上安裝 Perl 時都會安裝標準模組。

CPAN:全面的 Perl 存檔網路 - Perl 模組的全域性儲存庫。我們自己定製的 Perl 模組可以由我們編寫。基本上,在任何指令碼中載入的模組將匯出其所有全域性變數和子程式。這些子程式可以直接呼叫,就好像它們是在指令碼本身中宣告的一樣。Perl 模組可以使用 .pm 副檔名編寫,檔名比如說時 Foo.pm。可以使用程式開頭的 package Foo 編寫模組。

Basic Perl 模組:

#!/usr/bin/perl 

package Arithmetic; 

sub add 
{ 
my $a=$_[0]; 
my $b=$_[1]; 

return ($a+$b);
} 

sub subtract 
{ 
my $a=$_[0]; 
my $b=$_[1]; 

return ($a-$b); 
} 

1;

要使用此 Perl 模組,我們必須將其放在當前工作目錄中。

我們可以使用 requireuse 在程式碼中的任何位置來載入 Perl 模組。requireuse 之間的主要區別是,require 在執行時載入,而 use 是在編譯期間載入的。

#!/usr/bin/perl

require

Arithmetic;

print Arithmetic::add(5,6);

print Arithmetic:: subtract (5,6);

我們也可以使用 use Arithmetic 訪問包。

Exporter

此模組具有匯入方法的預設功能。

#!/usr/bin/perl 

package Arithmetic; 

require Exporter; 

@ISA= qw(Exporter); # This is basically for implementing inheritance. 

@EXPORT = qw(add); 

@EXPORT_OK = qw(subtract); 

sub add 

{ 

my $a=$_[0]; 

my $b=$_[1]; 

return ($a+$b); 

} 

sub subtract 

{ 

my $a=$_[0]; 

my $b=$_[1]; 

return ($a-$b);

 } 

1;

@EXPORT 陣列可用於傳遞變數和子程式列表,預設情況下將匯出到模組的呼叫者。

@EXPORT_OK 陣列可用於傳遞將按需匯出的變數和子程式列表,使用者必須在載入模組時指定。

#!/usr/bin/perl 

use 

Arithmetic qw(subtract); 

print add(5,6); 

print subtract (5,6);

預設情況下,add 子程式將被匯出。如果在載入模組時未指定減法方法,則不會匯出減法方法。