in reply to Action at a distance

Whatever it is, it certainly doesn't DWIM.

Yeah, it is a pitfall... which is common to all objects which try to behave like they are primitive data types. These are like photons, which behave either as waves or as particles, depending on how you look at them. No wonder that they show quantum effects.

My favourite workaround for this is to write $x = $bi * 1;. This is like $x = $b1->copy but also works if $b1 is just a plain integer or a Math::Complex object (these does not offer a copy method) or even a Math::Matrix or Math::Quaternion object.