Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: grep value in hash

by Anonymous Monk
on Dec 04, 2020 at 05:32 UTC ( #11124626=note: print w/replies, xml ) Need Help??


in reply to Re: grep value in hash
in thread grep value in hash

Hi, can you please give me insight about the code

 grep { $_ eq '111' } values %hash

Replies are listed 'Best First'.
Re^3: grep value in hash
by eyepopslikeamosquito (Bishop) on Dec 04, 2020 at 07:14 UTC

    The node you're responding to is over 14 years old! Sadly, its celebrated author (the famous davorg) hasn't visited us for more than two years and so is unlikely to respond. BTW, davorg, aka Dave Cross, is former head honcho of London.pm (around the time they sponsored a camel at London zoo), professional Perl trainer for over twenty years, and the author of at least four Perl books. Let's hope he visits us again soon.

    Meanwhile, I'll try to explain his masterful one-liner for you. You should read the immortal line:

    grep { $_ eq '111' } values %hash
    as a "pipeline" from right to left. The call to values %hash returns a list of all values in the hash (see values). The grep function evaluates the { $_ eq '111' } code block for each element of this list (locally setting $_ to each element), returning a list consisting of those elements for which the expression evaluated to true. That is, it returns a list of all values in %hash which have the exact value 111.

    Note that hashes have unique keys but their values are not unique, so the list returned by this expression may have more than one element; the above expression will only tell you how many times the value 111 appears in the hash but will not tell you the keys of the hash with that value -- for that, you would need to iterate through the keys of the hash instead, checking each value in turn (as the legend davorg did in his second code snippet, using the keys function).

    Now I've answered your question, you gotta tell me why you were asking a question about such an ancient node (I won't be able to sleep tonight not knowing).

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (2)
As of 2021-04-18 12:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?