在目錄中使用模組
use lib 'includes';
use MySuperCoolModule;
use lib 'includes';
將相對目錄 includes/
新增為 @INC
中的另一個模組搜尋路徑。假設你在 includes/
裡面有一個模組檔案 MySyperCoolModule.pm
,它包含:
package MySuperCoolModule;
如果需要,你可以在單個目錄中將自己的模組分組,並使用一個 use lib
語句查詢它們。
此時,使用模組中的子例程將需要在子例程名稱前加上包名稱:
MySuperCoolModule::SuperCoolSub_1("Super Cool String");
為了能夠使用沒有字首的子例程,你需要匯出子例程名稱,以便呼叫它們的程式識別它們。匯出可以設定為自動,因此:
package MySuperCoolModule;
use base 'Exporter';
our @EXPORT = ('SuperCoolSub_1', 'SuperCoolSub_2');
然後在 use
s 模組的檔案中,這些子程式將自動可用:
use MySuperCoolModule;
SuperCoolSub_1("Super Cool String");
或者你可以將模組設定為有條件地匯出子例程,因此:
package MySuperCoolModule;
use base 'Exporter';
our @EXPORT_OK = ('SuperCoolSub_1', 'SuperCoolSub_2');
在這種情況下,你需要顯式請求在模組的指令碼中匯出所需的子例程:
use MySuperCoolModule 'SuperCoolSub_1';
SuperCoolSub_1("Super Cool String");