use feature 'refaliasing'; no warnings 'experimental'; my ($x, $y, %h); \$h{foo} = \$x; \$y = \$h{foo}; $x = 99; printf "%d %d %d\n", $x, $y, $h{foo}; # prints 99 99 99