in reply to Re: Constructing Context
in thread Constructing Context
You're right, I was wrong. It turns out that "@foo" is not best considered context at all, or, at best, it's a special sort of context that only matters here. When an array is used in scalar context, it returns it's length. Period. However, when an array is interpolated into a string, it magicaly does not get evaluated in scalar context, then inserted into the string.
Instead, it's magicly equivlent to join($", @foo). Indeed, the internal operation tree generated by perl for "@foo" looks almost exactly like that for join($", @foo), the difference being a "stringify" operation, which seems to mostly shuffle things around a little.
Much thanks to diotalevi for pointing this out, pointing me at -MO=Concise's take on what's happening, and for his other critisims on the node.
Update: $", not $,, thanks again, demerphq.
|
|---|