Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

OM_Zen's scratchpad

by OM_Zen (Scribe)
on Jun 03, 2004 at 15:25 UTC ( #360204=scratchpad: print w/replies, xml ) Need Help??

Help for this page

Select Code to Download



    Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    [Lady_Aleena]: Why does grep(/.*$in.*/, @my_modules) work but grep { $_ =~ /.*$in.*/; $_ } @my_modules not work? What did I do wrong in the second?
    [tobyink]: Why are you returning $_ n your grep block? You should return a boolean.
    [tobyink]: *in your grep block
    [tobyink]: You can use grep { $_ =~ /.*$in.*/; } @my_modules but why not stick to grep(/.*$in.*/, @my_modules)? (The latter is faster.)
    [shmem]: Lady_Aleena, in the first example grep evaluates the result from grep and if true, returns $_. In the second, it always returns $_
    [shmem]: ..the result from the pattern match
    [Lady_Aleena]: tobyink, I did after I failed to get the BLOCK to work. I can't seem to get my brain around grep BLOCK, though I'm okay with grep EXPR.
    [shmem]: so in the second example grep returns all true elements of the list passed
    [Lady_Aleena]: Okay, so grep BLOCK is not like map BLOCK where something might need to be returned at the end.
    [tobyink]: grep { $_ =~ /.*$in.*/; } @my_modules should work just fine. The problem is that you were adding on ;$_ at the end of the block. Why were you doing that?

    How do I use this? | Other CB clients
    Other Users?
    Others surveying the Monastery: (8)
    As of 2017-05-27 07:40 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?