in reply to Temporary Variables

I think there's point being missed. The fact that Perl hides a temporary while doing a   ($b,$a) = ($a,$b); swap isn't important. The salient point is that there isn't a temporary that the programmer has to mentally account for. This is a wetware optimization, not a memory or processor optimization.

The other ways of swapping might work without a hidden temporary, but all of them contribute more to a programmer's cognitive load than does the simple swap.

A developer with moderate Perl skills looks at  ($b,$a) = ($a,$b); and thinks "oh, a swap", and moves on. But faced with

$a ^= $b; $b ^= $a; $a ^= $b;
the developer has to stop and walk through it. It might look like an XOR swap, but that're still three statements to grok just to make sure. Think of this as a wetware performance hit.

A big part of the development game is containing cognitive load -- yours and others.