sub swap { my ($a, $b) = \(@_); ( $$a, $$b ) = ( $$b, $$a ); } my ($x,$y)=(42,666); $\="\n"; print "($x,$y)"; #> (42,666) swap($x,$y); print "($x,$y)"; #> (666,42)