Corso di Raku / Avanzato / Contenitori / Variabili speciali e dinamiche / Variabili dinamiche

Quiz — Variabili dinamiche

Cosa stampa il seguente programma?

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

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

run();
01
12
0Nothing
0An error

show e’ scritta al livello superiore, proprio accanto a my $*n = 1, ma la sua posizione e’ irrilevante — una variabile dinamica viene cercata attraverso lo stack delle chiamate, non in base a dove si trova il codice. Qui show e’ chiamata da run, che ha ridichiarato $*n come 2, quindi quello e’ il valore in vigore e il programma stampa 2.

Variabili dinamiche   |   Variabili speciali integrate