in reply to Re: Scalar refs, aliasing, and recursion weirdness.
in thread Scalar refs, aliasing, and recursion weirdness.
Marcus, you are incorrect when you summarize the documentation as noting that modifying a reference taken to a substring is forbidden. That's wrong. You can do that to a reference once, but not two or more times.
$_ = 'aaaaaaaaaa'; $_ = \ $_; $$_ =~ s/ ... / ... /; # This is ok. $$_ =~ s/ ... / ... /; # This is not.
Modifying substring lvalues is typically safer if you don't do something to persist the lvalue beyond the length of a statement - you're less likely to find yourself accidentally modifying it more than once. The following expression is a highly useful form of lvalue substrings and one that people should be more aware of. It would not be available if lvalue substrings were not available.
substr( ... ) =~ s/ ... / ... /g
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Scalar refs, aliasing, and recursion weirdness.
by MarkusLaker (Beadle) on Feb 06, 2005 at 23:46 UTC | |
|
Re^3: Scalar refs, aliasing, and recursion weirdness.
by BrowserUk (Patriarch) on Feb 07, 2005 at 00:13 UTC | |
|
Re^3: Scalar refs, aliasing, and recursion weirdness.
by BrowserUk (Patriarch) on Feb 07, 2005 at 02:58 UTC |