in reply to Default variable within loops

the program just output the amount of elements from array @a that are not in array @b
There's a recipe given in Programming Perl for this.

For default variable within loops- I think its not possible (atleast on Perl v5.8.9). I tried this:
@a=(11,22,33,44,55); @b=(22,44,66,17); foreach (@a) # $_ gets one value from @a { @tested=grep {$_ == $::_} @b; # Had $_ been lexical for grep, $::_ w +ould've been a global } print "\n@tested"; #Doesn't work as expected...$_ and $::_ both are sa +me and get each value from @b
Doesn't look like $_ can be made lexical to grep block.