Треки
/
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, щоб установити набір модулів, які можна використовувати з тестовим раннером Perl на Exercism.

Вказівки

У цій вправі ми працюватимемо над планувальником записів для салону краси.

На нас чекають три завдання, і всі вони повʼязані з датами записів.

1. Перевірте, чи запис уже минув

Реалізуйте підпрограму appointment_has_passed, яка приймає рядок тексту (англ. string) з датою й перевіряє, чи запис був десь у минулому:

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

Рядки тексту з датами передаватимуться у форматі дати й часу ISO 8601: YYYY-mm-ddTHH:MM:SS

Вам знадобиться реалізувати приватну підпрограму _parse_datetime. Пропонуємо кілька модулів:

  • Time::Piece входить до стандартної поставки Perl.
  • DateTime::Tiny можна встановити з CPAN.

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, щоб вивчати й опановувати Perl, а також 5 концепцій84 вправи та справжнє наставництво від людей, і все це безкоштовно.