學習軌道
/
Perl
Perl
/
練習
/
預約美容
預約美容

預約美容

學習練習

簡介

套件與模組

匯入

模組通常會用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

除了核心模組之外,CPAN 還有數千個由 Perl 社群建立的額外模組可供安裝。 Perl 學習路徑使用 cpanfile 安裝一組精選模組,這些模組可以搭配 Exercism 的 Perl 測試執行器使用。

說明

在這個練習中,你將為一間美容沙龍開發預約排程系統。

你有三個任務,全都與預約日期有關。

1. 檢查預約是否已經過去

實作 appointment_has_passed 副程式,它接受一個日期字串,並檢查該預約是否發生在過去:

appointment_has_passed("2019-07-25T13:45:00")
// => true

日期字串會以 ISO 8601 日期時間格式傳入:YYYY-mm-ddTHH:MM:SS

你需要實作私有的 _parse_datetime 副程式。 這裡建議了幾個模組:

2. 檢查預約是否在下午

實作 is_afternoon_appointment 函式,它接受一個日期字串,並檢查該預約是否在下午(>= 12:00 且 < 18:00):

is_afternoon_appointment("2019-07-25T13:45:00")
// => true

3. 描述預約的時間與日期

實作 describe_appointment 函式,它接受一個日期字串,並回傳該日期與時間的描述:

describe_appointment("2019-07-25T13:45:00")
// => "You have an appointment on 07/25/2019 1:45 PM"

請注意,小時的範圍是 0 到 12,而且不會有前導零或空格。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Perl Exercism

準備好開始 預約美容 了嗎?

註冊 Exercism,透過 5 個概念84 個練習 和真人引導來學習並精通 Perl,全部免費。