in reply to Re^4: Shouldn't references be readonly?
in thread Shouldn't LITERAL references be readonly? (updated)
Perl is not JS. Does JS even have references as first-class values like Perl does?
I just tested it and was surprised that overwriting a reference to a literal number or string through $_ in map raises an error, even if multiple layers of references are involved, but overwriting a reference (even through metareferences) to an array is fine.
Devel::Peek reveals that the READONLY flag is apparently copied by the \ operator. If you start with a literal value, such as 1 or "abc" (which has the READONLY flag) the references are similarly seen to be read-only values, but if you start with an anonymous aggregate, which is mutable, the references are mutable. I would argue that, if there is a bug here, it is that references to constants, which should themselves (the references) be mutable, are incorrectly marked read-only.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^6: Shouldn't references be readonly?
by LanX (Saint) on Aug 05, 2020 at 22:21 UTC |