Курс языка программирования Raku / Продвинутый уровень / Модули / Пакеты и пространства имён / Пакеты и модули
Тест — Пакеты
Что напечатает следующая программа?
module M {
my $x = 5;
}
say $M::x.defined;| 1 | False |
| 0 | True |
| 0 | 5 |
| 0 | An error |
$x объявлена с помощью my, поэтому она
является лексической и никогда не попадает в пространство имён
M. Путь $M::x поэтому ничего не находит —
неопределённое значение — и .defined возвращает
False. Только переменная, объявленная с our,
была бы доступна таким образом.