ماژول معمولاً با «کلیدواژه»ی 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 استفاده میکند تا مجموعهای از ماژولها را نصب کند که میتوان آنها را با test runner 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 را پیادهسازی کنید که یک رشتهی تاریخ میگیرد و بررسی میکند که آیا قرار ملاقات بعدازظهر است (>= ۱۲:۰۰ و < ۱۸:۰۰):
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"
توجه کنید که ساعت در بازهی ۰ تا ۱۲ قرار دارد و صفر یا فاصلهای در ابتدای آن نمیآید.