#!/usr/bin/perl use strict; use warnings; use 5.10.0; use Hash::Util 'lock_keys'; use Benchmark 'cmpthese'; lock_keys my %hash1, qw/foo bar baz/; my %hash2; cmpthese(1e2, { 'lock' => sub { for (1 .. 1e5) {$hash1{foo}++;$hash1{bar}++;$hash1{baz}++;} }, 'no_lock' => sub { for (1 .. 1e5) {$hash2{foo}++;$hash2{bar}++;$hash2{baz}++;} }, }); #### Rate lock no_lock lock 61.6/s -- -8% no_lock 66.8/s 8% --