you can refer to the outer $v as OUTER::('$v'), that ought to help :)
On 03/10/2018 08:10, yary wrote: > Reading and playing with https://docs.perl6.org/routine/temp > > There's an example showing how temp is "dynamic" - that any jump > outside a block restores the value. All well and good. > > Then I thought, what if I want a lexical temporary value- then use > "my"- and this is all well and good: > > my $v = "original"; > { > my $v = "new one"; > start { > say "[PROMISE] Value before block is left: `$v`"; > sleep 1; > say "[PROMISE] Block was left while we slept; value is still > `$v`"; > } > sleep ½; > say "About to leave the block; value is `$v`"; > } > say "Left the block; value is now `$v`"; > sleep 2; > > Then I thought, well, what if I want to initialize the inner $v with > the outer $v. > > my $v = "original"; > { > my $v = $v; # "SORRY! Cannot use variable $v in declaration to > initialize itself" > say "inner value is $v"; > $v= "new one"; > ... > > Gentle reader, how would you succinctly solve this contrived example? > Anything you like better than this? > > my $v = "original"; > given $v -> $v is copy { > say "inner value is $v"; # "original", good > $v= "new one"; > .... > > -y