#! perl use strict; use warnings; use Internals qw(IsWriteProtected); for (qw(literal1 literal2 literal3)) { print "$_\n"; foo('wilma'); } sub foo { if (IsWriteProtected(\$_)) { warn "Can't modify \$_"; } else { $_ = 'fred'; } goto &bar; } sub bar { my ($name) = @_; print "foo --> name = $name, \$_ = $_\n"; }