in reply to Modification of a read-only value
I am guessing that this code is inside a subroutine and you're calling it while $_ is aliased to a constant. Try this:
for ( "read", "only", "value" ) { print "$_\n"; $_ = "test"; # blows up }
The problem is probably concealed in your code like so:
sub foo { $_ = "test"; } foo(); # works for ( "read", "only", "value" ) { print "$_\n"; foo(); # blows up }
The solution is to put a local $_; at some opportune point to decouple one piece of the code from the other. The trap is that aliasing constructs like for(), map and friends do not need such treatment, but while(<FH>) does.
Makeshifts last the longest.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Modification of a read-only value
by Sprad (Hermit) on Aug 21, 2004 at 16:03 UTC | |
by Aristotle (Chancellor) on Aug 21, 2004 at 16:10 UTC | |
by ikegami (Patriarch) on Aug 22, 2004 at 01:36 UTC | |
by Aristotle (Chancellor) on Aug 22, 2004 at 09:28 UTC |