Raku-Kurs / Fortgeschritten / Container / Spezielle und dynamische Variablen / Dynamische Variablen

Quiz — Dynamische Variablen

Was gibt das folgende Programm aus?

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

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

run();
01
12
0Nothing
0An error

show ist auf der obersten Ebene geschrieben, direkt neben my $*n = 1, aber diese Platzierung ist irrelevant — eine dynamische Variable wird über den Aufrufstapel aufgelöst, nicht danach, wo der Code steht. Hier wird show aus run aufgerufen, das $*n als 2 neu deklariert hat, also ist das der gültige Wert und das Programm gibt 2 aus.

Kursnavigation

Dynamische Variablen   |   Eingebaute spezielle Variablen