トラック
/
Perl
Perl
/
演習
/
美容院の予約
美容院の予約

美容院の予約

学習演習

はじめに

パッケージとモジュール

インポート

モジュールは通常、useキーワードで読み込みます。 これはモジュールを読み込むと同時に、そのimportメソッドを呼び出し、エクスポートされたシンボルをインポートします。

パッケージの@EXPORT配列にあるシンボルは、デフォルトでインポートされます。 パッケージの@EXPORT_OK配列にあるシンボルは、明示的にインポートする必要があります。

エクスポート

シンボルをインポートするには、まずエクスポートされている必要があります。 ExporterモジュールはPerlに標準で含まれており、エクスポートを行うための最も便利な方法の1つです。

モジュールを定義する:

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テストランナーで使えるモジュールをいくつかインストールしています。

説明

この演習では、美容サロンの予約スケジューラーに取り組みます。

タスクは3つあり、いずれも予約の日時を扱います。

1. 予約の時間が過ぎていないかを確認する

appointment_has_passedサブルーチンを実装しましょう。このサブルーチンは日付の文字列を受け取り、その予約が過去のものかどうかを確認します。

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

日付の文字列は、YYYY-mm-ddTHH:MM:SSというISO 8601の日時形式で渡されます。

非公開の_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を学んでマスターできます。すべて無料です。