Bryan R Harris wrote:

John W. Krahn wrote:

Bryan R Harris wrote:

John W. Krahn wrote:

The left hand side of the assignment determines context so the @l2r{...}
part.

That strikes me as odd...  When perl goes to populate @l2r{"a","b"}, it
seems to me that it would go through this process:

- I have a slice here, so I'll loop over the slice elements
- The first is "a", so I'll pull a scalar off the list and assign it to
$l2r{"a"}
- The second is "b", so I'll pull another scalar off the list and assign it
to $l2r{"b"}
- Remaining scalars in the list are discarded

Correct, except for the loop part.

Why would $l2r{"a"} here be considered list context?

It isn't, unless it's written as ( $l2r{"a"} ), then it's a list with
one element.

So I still don't understand what about @l2r{"a","b"} makes it evaluate the
first (<FILE>... in list context instead of scalar context.

The '@' sigil at the front of the variable name says that it is either an array or a slice and so it forces list context on the right hand side of the assignment.


John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to