in reply to Re^3: Count non-empty hash values
in thread Count non-empty hash values

grep just localizes the "current" item in the list to $_ - that's why /regex/ works in grep (and map and for(each) too): you can do any operation you want on $_ and as long as the statement(s) in the grep block return(s) a true value the original value will be in the resulting list (or in the count, if in scalar context).

I guess this is one of the points where perl is intuitive and "deep" at the same time.