I was trying to clarify the confusion I had (that I just assumed that 'grep' works the same way 'split' does). My script now works with the 'map {/re(gex)/; $1} @list' or 'map {/re(gex)/ ? $1 : (); } @list' solution.
I will try the regex =~ thing also. This may be faster.
Thank you very much.