Dynamic variables
Dynamic variables are variables whose actual scope may change depending on when you access this variable.
Dynamic variables names contain a twigil *
,
for example: $*x
.
In the following code snippet,
$*var
is the dynamic variable.
In either subroutine,
a()
or b()
it is declared as a lexical variable using the my
keyword.
Although when it is red inside the echo()
subroutine,
its actual scope will be different.
sub alpha { my $*var = 'Alpha'; echo(); } sub beta { my $*var = 'Beta'; echo(); } sub echo() { say $*var; } alpha(); # Alpha beta(); # Beta
There are predefined dynamic variables, like those for the standard IO file handles: $*IN
, $*OUT
, and $*ERR
.