use strict; my $X = 1; my $Y = 2; my $Z = 3; print "before: X=$X, Y=$Y, Z=$Z\n"; pass_by_ref(\$X, \$Y, \$Z); print "after: X=$X, Y=$Y, Z=$Z\n"; sub pass_by_ref { my ($x, $y, $z) = @_; ${$x} = 2; # or $$x = 2; ${$y} = 3; ${$z} = 4; }