1:35 >perl -E "say for sort keys %Internals::"
SvREADONLY
SvREFCNT
V
hv_clear_placeholders
1:35 >
####
#! perl
use strict;
use warnings;
use Internals qw(SetReadWrite);
for (qw(literal1 literal2 literal3))
{
print "$_\n";
foo('wilma');
}
sub foo
{
SetReadWrite(\$_);
$_ = 'fred';
goto &bar;
}
sub bar
{
my ($name) = @_;
print "foo --> name = $name, \$_ = $_\n";
}
####
12:26 >perl 723_SoPW.pl
literal1
Modification of a read-only value attempted at 723_SoPW.pl line 15.
12:28 >
####
#! 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";
}
####
12:28 >perl 723_SoPW.pl
literal1
Modification of a read-only value attempted at 723_SoPW.pl line 20.
12:36 >