Курс Raku / Розширені / Модулі / Основи модулів / Вправи / Завантажити під час виконання
Розв’язання: Завантажити під час виконання
Ось один із можливих варіантів розв’язання задачі.
Код
Програма require-import.raku:
sub MAIN(Bool :$quiet) {
if $quiet {
say 'Silence.';
}
else {
require Greeting <&hello>;
say hello('Sam');
}
}🦋 Обидва файли з вихідним кодом можна знайти в каталозі exercises/advanced/modules-basics/require-at-runtime.
Вивід
$ raku -I. require-import.raku
Hello, Sam!
$ raku -I. require-import.raku --quiet
Silence.Коментарі
requireзавантажує модуль під час виконання, а не під час компіляції. Сам по собі він нічого не імпортує, — саме тому голийhelloбув би невідомим.Список
<&hello>кажеrequireімпортувати цей один символ, тож після цього оператораhello('Sam')можна викликати напряму, отримуючиHello, Sam!.Саме для цього й існує
require: оскільки він виконується під час виконання, він може стояти всерединіif. Коли задано--quiet, ця гілка пропускається, і модуль ніколи не завантажується — чогоuse, що працює під час компіляції, уникнути б не зміг.