in reply to Perl6 - value vs. reference issues

Well, it's almost 7 years later and Perl 6 is still a work in progress. But I know the answer to this issue: it works because the Int object is immutable. A Dog object can change its attributes, so two variables sharing the same object ($b=Dog::new;$a=$b;) will perceive the sharing. But an Int will never change. There are no mutating methods on it. Changing the value, e.g. ++$a, requires lvalue access to the variable, as this is $a= 1+$a; and assigns a different Int object to $a, leaving $b to still point to the original unchanged.

—John