Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?


by MrNobo1024 (Hermit)
on Sep 03, 2001 at 23:00 UTC ( #109919=obfuscated: print w/replies, xml ) Need Help??

#include <stdio.h>/* print"Just another Perl hacker,\n";sub{q;#*/ int main(){puts("Just another C hacker,");;return 0;}

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: obfuscated [id://109919]
Approved by root
[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
Find Nodes?
    Voting Booth?