Курс языка программирования Raku / Продвинутый уровень / Модули / Пакеты и пространства имён / Пакеты и модули

Тест — Пакеты

Что напечатает следующая программа?

module M {
    my $x = 5;
}

say $M::x.defined;
1False
0True
05
0An error

$x объявлена с помощью my, поэтому она является лексической и никогда не попадает в пространство имён M. Путь $M::x поэтому ничего не находит — неопределённое значение — и .defined возвращает False. Только переменная, объявленная с our, была бы доступна таким образом.

Навигация по курсу

Пакеты и модули   |   Пространства имён и our