##
sub func {
my ($s) = $_[0]; # Safe.
local *_ = \$s;
...
}
####
sub func {
# Any changes to $_ will affect the caller's var.
for ($_[0]) {
...
}
}
####
sub func {
for (my $s = $_[0]) { # Safe.
...
}
}