Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: ${Schwartzian transform} ?

by BrowserUk (Pope)
on Sep 18, 2003 at 12:05 UTC ( #292364=note: print w/replies, xml ) Need Help??

in reply to ${Schwartzian transform} ?

At a first glance, I think your creating extra work rather than saving any. $_ is an alias, so when you include it in the anon. array, you are only passing a reference to the original value (ie. a scalar).

Your code is actually creating an extra reference to the scalar, (ie. copying the alias?), which it then has to dereference, hence doing slightly more work.

I *think*.

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
If I understand your problem, I can solve it! Of course, the same can be said for you.

Replies are listed 'Best First'.
Re: ${Schwartzian transform} ?
by Abigail-II (Bishop) on Sep 18, 2003 at 12:14 UTC
    While $_ in a map is an alias, it doesn't mean that $_ in rvalue context magically resolves to the alias instead of the value. Watch:
    perl -wle '@a = 1; @b = map {++ $_ -> [0]} map {[$_]} @a; print "@a"; +print "@b"' 1 2

    No alias passes out of the right-most map.

    Or a shorter example:

    perl -wle '@a = 1; @b = map {$_} @a; $a [0] ++; print "@a @b"' 2 1

    @b isn't an array whose elements are aliases for the elements of @a.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://292364]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2018-05-27 16:56 GMT
Find Nodes?
    Voting Booth?