Курс Raku / Розширені / Контейнери / Спеціальні та динамічні змінні 🆕 / Динамічні змінні
Тест — Динамічні змінні
Що виведе наведена програма?
my $*n = 1;
sub show { say $*n }
sub run {
my $*n = 2;
show();
}
run();| 0 | 1 |
| 1 | 2 |
| 0 | Нічого |
| 0 | Помилку |
show написано на верхньому рівні, просто поруч із
my $*n = 1, але це розташування не має значення: динамічну
змінну шукають через стек викликів, а не за тим, де лежить код.
Тут show викликано з run, який перевизначив
$*n як 2, тож саме це значення чинне, і
програма виводить 2.