Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^4: ${^POSTMATCH} problem

by LanX (Sage)
on Jun 14, 2020 at 16:01 UTC ( #11118058=note: print w/replies, xml ) Need Help??

in reply to Re^3: ${^POSTMATCH} problem
in thread ${^POSTMATCH} problem

I'm not happy about the behaviour of join here, because there is no way how CORE::join() will ever assign to the lvalue.

So it should act like handling copies.

I'm aware that we can override built-ins like join, so accessing the alias should still be possible. Theoretically that is.


On second thought, a general new Warning in case of side effects of altered repeated variables as arguments may be more effective.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^5: ${^POSTMATCH} problem
by ikegami (Patriarch) on Jun 15, 2020 at 04:22 UTC

    Short of *completely* rewriting Perl, it would have to make an actual copy to act like it was handling copies.

      No, it could also rewrite the call to join in terms of pre-multiconcat concatenation. I thought at first this would cause problems for magical vars, but that's not the case.

      But the point stands. To change this would impose a performance hit. Rather than slowing down join to provide more consistent behaviour, they've opted to speed up concatenation while providing less consistent behaviour. And I agree with this. In general, a programmer should never read and change a variable in the same statement. It introduces readability issues if nothing else, but it's common for it to invoke undefined behaviour.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11118058]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2022-01-17 02:24 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (50 votes). Check out past polls.