模組通常會用use關鍵字載入。
這會載入模組,並呼叫它的import方法,匯入所有已匯出的符號。
套件@EXPORT陣列中的符號會預設被匯入。
套件@EXPORT_OK陣列中的符號則必須明確匯入。
符號必須先被匯出,才能被匯入。 Exporter 模組隨 Perl 一起提供,是最方便的匯出方式之一。
定義模組:
package Foo;
use Exporter ('import');
our @EXPORT_OK = ('bar');
sub bar { ... }
使用模組:
use Foo ('bar');
bar();
除了 Exporter 之外,Perl 還提供各式各樣的核心模組可供使用。 這裡可能會遇到的一些練習中,實用的例子包括 List::Util、Time::Piece 和 Math::BigRat。
除了核心模組之外,CPAN 還有數千個由 Perl 社群建立的額外模組可供安裝。 Perl 學習路徑使用 cpanfile 安裝一組精選模組,這些模組可以搭配 Exercism 的 Perl 測試執行器使用。
在這個練習中,你將為一間美容沙龍開發預約排程系統。
你有三個任務,全都與預約日期有關。
實作 appointment_has_passed 副程式,它接受一個日期字串,並檢查該預約是否發生在過去:
appointment_has_passed("2019-07-25T13:45:00")
// => true
日期字串會以 ISO 8601 日期時間格式傳入:YYYY-mm-ddTHH:MM:SS
你需要實作私有的 _parse_datetime 副程式。
這裡建議了幾個模組:
實作 is_afternoon_appointment 函式,它接受一個日期字串,並檢查該預約是否在下午(>= 12:00 且 < 18:00):
is_afternoon_appointment("2019-07-25T13:45:00")
// => true
實作 describe_appointment 函式,它接受一個日期字串,並回傳該日期與時間的描述:
describe_appointment("2019-07-25T13:45:00")
// => "You have an appointment on 07/25/2019 1:45 PM"
請注意,小時的範圍是 0 到 12,而且不會有前導零或空格。