in reply to Re^4: Is this a bug, or expected behavior?
in thread Is this a bug, or expected behavior?

Does "by definition" and "it makes sense to Larry" help here?

The index of a scalar access to a data structure (array or hash) is always evaluated in scalar context, because one and only one item comes back from the calculation.

You don't expect $a->[3..5] to come back with 3 items, do you? If so, please reset your expectations to the way Larry implemented that design. If you want a slice, there's a slice notation. If you want a single element, you have a single element notation.

Note that for Perl6, Larry changed his mind ("see rule #1"), and it acts differently, which I think will mean that DWIMmery will eventually lead to unpredictable behavior at that level. In fact, I saw some evidence of that in a Perl6 design discussion two years ago.

However, for Perl5, it's very predictable, and doesn't depend on the context in which the item appears, which I think is quite nice.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.