Решил попробовать что за зверь такой этот Perl6.
Начал писать циклы и обратил внимание, что на такой момент когда я использую $i в двух разных циклах компилятор ругается на переопределение:
sub test() {
loop (my Int $i = 0; $i < 10; $i++) { print "$i "}
print "\n";
loop (my Int $i = 0; $i < 10; $i++) {
print "$i ";
}
}
test();
Potential difficulties:
Redeclaration of symbol '$i'
at C:\Users\batur\work\perl6/.\test.p6:4
------> loop (my Int $i<HERE> = 0; $i < 10; $i++) {
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
То есть по сути, если я правильно понял, в первом и втором цикле одинаковые $i. Почему так сделали? Почему не сузили область видимости этой переменной до цикла loop, в котором она объявляется? Я вот не могу прикинуть такой use-case, в котором бы от такой области видимости была польза