Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

difference between grep and map

by boom (Scribe)
on Mar 05, 2009 at 04:54 UTC ( [id://748399]=perlquestion: print w/replies, xml ) Need Help??

boom has asked for the wisdom of the Perl Monks concerning the following question:

What is the difference between grep and map ?

Replies are listed 'Best First'.
Re: difference between grep and map
by GrandFather (Saint) on Mar 05, 2009 at 05:01 UTC

    See the documentation: grep and map. Briefly (not not entirely accurately):

    grep expression list runs across a list and returns a list containing the elements of the original list for which the expression is true.

    map expression list runs across a list and returns a list containing the value of expression for each of the elements of the original list.


    True laziness is hard work
Re: difference between grep and map
by eyepopslikeamosquito (Archbishop) on Mar 05, 2009 at 05:53 UTC

    Excellent advice on this is given in the classic Shiny Ball Book, Item 12 "Use foreach, map and grep as appropriate":

    • Use foreach to iterate read-only over each element of a list
    • Use map to create a list based on the contents of another list
    • Use foreach to modify elements of a list
    • Use grep to select elements in a list

Re: difference between grep and map
by lakshmananindia (Chaplain) on Mar 05, 2009 at 06:42 UTC
Re: difference between grep and map
by leslie (Pilgrim) on Mar 05, 2009 at 07:19 UTC
    grep:
    -------

    The grep operator taking list of values and a "testing expression". It takes one value after another and put it into the $_ then evaluate the testing expression in a scalar context. If expression evaluates to a true value it will return the $_ into the output list. In a list context grep return the list of selected items. In a scalar context grep return the number of selected items.

    map:
    ------

    The map operator has a very similar step to grep operator and shares a lot of the same operational steps. It is also temporarily place the items from the list into $_ one at a time. The map operator evaluates the expression in a list context( not a scalar context like grep). Each evaluation of the expression gives a portion of the many results. the overall result in the list concatenation of all individual results. map return no.of elements that are returned in a list context.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://748399]
Approved by GrandFather
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2024-03-29 06:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found