in reply to Re^2: RFC: Context tutorial
in thread RFC: Context tutorial

I understand what it did. What I feel you were unclear about is the difference between:

my $y = ( 'moe', 'larry', @t );

and

my $y = ( 'moe', 'larry', @t[0,1] );

They react differently, and it takes a little thought to see why.

G. Wade

Replies are listed 'Best First'.
Re^4: RFC: Context tutorial
by kyle (Abbot) on Jan 13, 2009 at 21:45 UTC

    I see. Yes, thanks for clarifying further. An array in scalar context evaluates to the number of items in the array, but the array slice is a list. Now that I think about it, a whole section of "context clash" could be how arrays and hashes behave in list and scalar context, or maybe another section still.

    Thanks again for your input!

      An array in scalar context evaluates to the number of items in the array, but the array slice is a list.

      An array slice is not a list, it's an array slice. Each operator (including the list operator, arrays and array slices) decides what it returns in each context. In scalar context, an array slice returns the last element of the slice. It doesn't return a list. It has nothing to do with lists.

        Point taken. Subtle points like this are why I've sought feedback as much as I have. Thanks!