sub swap{ our($a,$b); local( *a, *b ) = \( @_ ); ($a, $b ) = ( $b, $a ) } my( $x, $y ) = ( 1, 'fred' ); swap( $x, $y ); print "$x, $y";; fred, 1 print swap( 1, 'fred' );; fred 1