sub withNames{ local %_ = @_; ++$_{$_} for keys %_; };; sub sansNames{ ++$_ for @_; };; cmpthese -1,{a=>q[ withNames( 1 .. $_*2 ) for 1..5 ], b=>q[ sansNames( 1..$_ ) for 1 .. 5 ] };; Rate a b a 32135/s -- -75% b 127549/s 297% --