Order of evaluation
Lvalue converted to rvalue as late a possible
my $n =666;
print $n * do { $n = 21; 2 } ;
- The subexpression
$n is evaluated first but returns an lvalue
- By the time the multiplication happens that lvalue evaluates to the rvalue
21
Next