map + grep problem

Victor Odhner vodhner at
Mon May 5 11:08:58 CDT 2003

Here's a really basic Perl construct that for some reason I've never 
used.  In this case I'm trying to take the intersection of two arrays, 
and this seemed appropriate to me:

  print( ( map{grep /^$_$/, @a2} @a1 ), "\n");

What I get is bdfbdfbdfbdf.

It doesn't seem that $_ is being set to each element
of @a1 and then grepped against @a2.

Can anybody explain my blind spot here?

Again, I just want a list that is the intersection
of the two lists.  Of course I can run a loop, but
"map" seems a nice tight way to do the job.


More information about the Phoenix-pm mailing list