تُحمَّل الوحدة عادةً بالكلمة المفتاحية 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 لتثبيت مجموعة مختارة من الوحدات التي يمكن استخدامها مع مشغّل اختبارات Perl الخاص بـ Exercism.
في هذا التمرين ستعمل على جدولة المواعيد في صالون تجميل.
لديك ثلاث مهام، وكلها تتعلق بتواريخ المواعيد.
نفّذ الروتين الفرعي 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 ولا تحتوي على صفر أو مسافة في البداية.
سجّل في Exercism لتتعلّم وتتقن Perl عبر 5 مفاهيم84 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.