my %h : shared; $x = $h{foo}; # R1 safe? @x = keys(%h); # R2 safe? while (($k, $v) = each(%h)) { ... } # R3 safe?