在目錄中使用模組

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');

然後在 uses 模組的檔案中,這些子程式將自動可用:

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");