in reply to ref to read-only alias ... why?
The condition in which "\" copies a scalar is: SvPADTMP(sv) && !IS_PADGV(sv). Not sure that that means. The condition is still there in the latest codebase.
It turns out that whether you get a read-only error or not depends on whether you are using a threaded Perl or not.
Using the lastest codebase:
$ git clean -dfx \ && ./Configure -des -Dusedevel -Dcc='ccache cc' \ && make miniperl ... $ ./miniperl -le'for (1) { my $r = \$_; $$r++; print; print $$r; }' Modification of a read-only value attempted at -e line 1. $ git clean -dfx \ && ./Configure -des -Dusedevel -Dcc='ccache cc' -Dusethreads \ && make miniperl ... $ ./miniperl -le'for (1) { my $r = \$_; $$r++; print; print $$r; }' 1 2
|
---|
In Section
Seekers of Perl Wisdom