my $a = 10; print "$a "; change($a); print "$a"; sub change { $_[0]++; } #### my $a = 10; print "$a "; change($a); print "$a"; sub change { my $param = shift; $param++; } #### # contrived example: there usually isn't a good reason # to have references to scalars. my $a = 10; my $b = \$a; print "$$b "; change($b); print "$$b"; sub change { my $param = shift; ${$param}++; } #### my $a = 10; my $b = \$a; my $c = 4; print "$$b "; change($b); print "$$b"; sub change { $_[0] = \$c; }