sub sansNames{ ++$_ for @_; };; sub withNames{ local %_ = @_; ++$_ for values %_; };; cmpthese -1,{ a=>q[ withNames( 1 .. $_*2 ) for 1..5 ], b=>q[ sansNames( 1..$_ ) for 1 .. 5 ] };; Rate a b a 35072/s -- -71% b 122333/s 249% --