Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: scalar in list context

by Crackers2 (Vicar)
on Jan 26, 2010 at 21:38 UTC ( #819785=note: print w/ replies, xml ) Need Help??


in reply to scalar in list context

Maybe you mean the context of the assignment?

@array = ( "one", "two", "three" ); ($len) = @array; $len1 = @array; print "1 - ", $len, "\n"; print "2 - ", $len1, "\n";

Where the first will print "one" and the second will print "3", since (IIRC) assignment forces the context of the LHS onto the RHS.

Update: See ikegami's post below for the correct explanation of what I was trying to say.


Comment on Re: scalar in list context
Download Code
Re^2: scalar in list context
by ikegami (Pope) on Jan 26, 2010 at 22:41 UTC

    Maybe you mean the context of the assignment?

    All three of your assignments are evaluated in void context, so I think you mean "the context imposed by the assignment" onto its operands.

    assignment forces the context of the LHS onto the RHS.

    So what determines the context of the LHS?

    The context in which both operands of an assignment are evaluated is determined by the type of assignment (scalar assignment or list assignment). Both types of assignments are represented by "=" in the code, so the type of assignment is determined by the literal code on the LHS.

    Expressions in parens, arrays, hashes, local() and my() cause the creation of a list assignment. Everything else causes the creation of a scalar assignment.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://819785]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2014-10-20 22:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (92 votes), past polls