in reply to Conditional Map?

This sort of situation suits for just fine and doesn't really fit with a sole map as it's really designed towards applying a transform to a list, not iterating over one. You could however achieve your goal using map and grep in conjunction e.g
my %hash1 = map { getkey($_) => $_ } grep { !/^f/ } @array;

HTH

_________
broquaint