my $mutex = $mutexes{$k} ||= do { my $mutex : shared; \$mutex }; #### my $mutex = $mutexes{$k}; if (! defined $mutex) { lock($mutexes); if (!defined $mutexes{$k}) { my $new_mutex : shared; $mutexes{$k} = \$new_mutex $mutex = \$new_mutex } }