http://qs321.pair.com?node_id=759921


in reply to Re: Why does foo() evaluate in array context in "${\foo()}"?
in thread Why does foo() evaluate in array context in "${\foo()}"?

I'll agree with ikegami and say that's weird.

But I'll also admit that I'm just saying that to make it look like I know what I am talking about. In reality the catch listed above doesn't make any sense to me.

That is, I've read the documentation on the Perl debugger (although I've never used it myself). So I know that x @array = (1..3) evaluates the line in list context and dumps results. Listing the element indices threw me for a moment, but I blame Friday for that.

But what, for example, would you expect for the second command? Without the backslash, I look at (@array, (@array)) and think that it's a little confusing. I think it just evaluates as the concatenation of both lists, yes? Adding the backslash and I have no idea what it should look like. What gets evaluated first? I've taken a peek at perlop but it doesn't indicate if the backslash has a higher precedence than parentheses -- I would expect no, but with the oddity here I can't say for sure.

Any help you can give on unraveling what's going on here would be appreciated.