sub switch_var (\$$\$) { my ($reference, $initial, $binding) = @_; # bind $binding to scalar reference $reference tie $$binding, 'SomeClass', $reference; $$binding = $initial; }