Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Mini-Tutorial: Scalar vs List Assignment Operator

by biohisham (Priest)
on Aug 22, 2009 at 14:23 UTC ( #790576=note: print w/ replies, xml ) Need Help??


in reply to Mini-Tutorial: Scalar vs List Assignment Operator

one of the frequently used functions are map and grep, both with a similar syntax and arguments but BLOCK and EXPR in a grep statement are evaluated in a scalar context while in a map statement they are evaluated in a list context, it would be really great if you could address the evaluation differences as you've the assignment one. I don't really know much about the inner working of both functions because I am not as much experienced but I am puzzled by the way list and scalar contexts are presented.

Thanks A lot.



Excellence is an Endeavor of Persistence. Chance Favors a Prepared Mind.


Comment on Re: Mini-Tutorial: Scalar vs List Assignment Operator
Download Code
Re^2: Mini-Tutorial: Scalar vs List Assignment Operator
by ikegami (Pope) on Sep 05, 2009 at 02:50 UTC

    The purpose of grep is to filter a list. It does so by evaluating a piece of code for each item in the argument list. It wants a yes/no answer from the code it executes, so scalar context is warranted.

    The purpose of map is to transform a list. There is no correlation between in the size of the input list and the size of the output list. A given element may be transformed into zero, one or many elements, so list context is warranted.

    To tie this back to the subject at hand, this is basically how all operators work:

    • If an operator requires exactly one value for an operand (such as either operand of the scalar assignment operator), the operator will impose a scalar context on that operand.
    • If an operator requires multiple values for an operand (such as either operand of the list assignment operator), the operator will impose a list context on that operand.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (8)
As of 2014-08-23 03:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (172 votes), past polls