http://www.perlmonks.org?node_id=11125807


in reply to Re^3: using ref to hash of hash effectively
in thread using ref to hash of hash effectively

In terms of aesthetics, my feeling is "each to his own". I used to use map in void context. I have no problem reading code like that. I no longer use it, but for completely different reasons (see below).

The performance hit was resolved in 5.8.1 (see "perl581delta: Miscellaneous Enhancements"). If you're coding to 5.8.0 or earlier, you should avoid map in void context; otherwise, the performance issue is moot.

Quite a few years ago, I benchmarked map against for. I was surprised at how much faster for was. That's the reason I would now choose

for (keys %{ $weapons_ref }) { ... }

over

map { ... } keys %{ $weapons_ref };

See Benchmark and run your own tests if you want.

— Ken