Curso de Raku / Avanzado / Contenedores / Variables especiales y dinámicas / Variables dinámicas

Quiz — Variables dinámicas

¿Qué imprime el siguiente programa?

my $*n = 1;
sub show { say $*n }

sub run {
    my $*n = 2;
    show();
}

run();
01
12
0Nothing
0An error

show está escrita en el nivel superior, justo al lado de my $*n = 1, pero esa ubicación es irrelevante — una variable dinámica se busca a través de la pila de llamadas, no por dónde está situado el código. Aquí show es llamada desde run, que redeclaró $*n como 2, así que ese es el valor vigente y el programa imprime 2.

Variables dinámicas   |   Variables especiales integradas