المسارات
/
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 الذي يأخذ سلسلة نصية تمثّل تاريخًا ويتحقق مما إذا كان الموعد في وقت ما في الماضي:

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 لتتعلّم وتتقن Perl عبر 5 مفاهيم84 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.