Cursus Raku / Geavanceerd / Containers / Speciale en dynamische variabelen / Exercises
Een dynamische variabele
Probleem
Een dynamische variabele — geschreven met de *-twigil —
wordt opgezocht door naar buiten te zoeken via de call stack, niet via
lexicale scope. De waarde die een subroutine ziet hangt dus af van wie
deze heeft aangeroepen, waardoor een blok de code die het aanroept onder
een andere identiteit kan laten draaien.
- Declareer een dynamische variabele
$*usermet de waarde'guest'. - Schrijf een subroutine
whoamidierunning asprint gevolgd door de huidige$*user(bijvoorbeeldrunning as guest). Deze moet$*userdirect uitlezen — zonder parameters. - Roep
whoamieenmaal aan op het bovenste niveau: het rapporteertguest. - Roep vervolgens binnen een blok dat
$*useropnieuw declareert als'admin'dezelfdewhoaminogmaals aan: nu rapporteert hetadmin.
Voorbeeld
Het programma print:
running as guest
running as adminOplossing
Cursusnavigatie
← Quiz — Speciale variabelen | Oplossing: Een dynamische variabele →