Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: (Mis)Understanding <c>grep...eq $_<c>

by ysth (Canon)
on Feb 24, 2009 at 06:36 UTC ( [id://745911]=note: print w/replies, xml ) Need Help??


in reply to (Mis)Understanding grep...eq $_

grep EXPR, LIST executes EXPR for each item in LIST (with $_ set to that item), and returns a list of those items from LIST for which the EXPR is true. Or in scalar context, as provided by your unless(), it returns a count of the items for which EXPR was true. So your grep $person_has eq $_, $item returns 1 when $person_has eq $item and 0 otherwise, and the whole unless () is equivalent to if ($person_has ne $item). So you may shoot whoever wrote the code.

Your "search through the string", "includes an exact match", make it sound like you are expecting some kind of string matching operator, while grep is really a list filter (though the arbitrary filtering expression may sometimes be a match operation). Try rereading grep with that in mind.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-24 18:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found