in reply to Re: Re (tilly) 2: Comprehending Binary :=
in thread Comprehending Binary :=

So how is $bound := %data{$key} different from $bound = \%data{$key}

In the first case, $bound becomes another name for %data{$key}. In the second case, $bound simply stores a reference to %data{$key}.

That one extra level of indirection may not seem important, but consider what happens later in the code when we write:

$bound = $nuclear_reactor_shutoff_command;
In the first case, the shutoff command goes into the entry %data{$key}. In the second case, the reference to %data{$key} is (silently!) replaced by the shutoff command, and %data{$key} itself is not updated at all.

Which is better? Well, of course, it depends on what you were trying to achieve. But, with the departure of typeglobs, we need to have some way to do the former, and that way is going to be binding.

And, indeed, as I mentioned in E3, binding has a couple of major advantages over typeglobbing: it's typesafe(r), and bound variables can be lexically scoped.