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/ ... / ... /gIn reply to Re^2: Scalar refs, aliasing, and recursion weirdness.
by diotalevi
in thread Scalar refs, aliasing, and recursion weirdness.
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |