#!/usr/bin/perl -- use strict; use warnings; use Benchmark 'cmpthese'; use Hash::Util(); use Tie::Hash::FixedKeys (); our %fudge= ( 1,1,3,3 ); our %judge = ( 1,1,3,3 ); our %budge = ( 1,1,3,3 ); our %mudge = ( 1,1,3,3 ); Hash::Util::lock_keys(%fudge); tie %budge, 'Tie::Hash::FixedKeys', keys %budge; cmpthese( -3, { 'lock' => '$fudge{1}++; eval{$fudge{r}++}; ', 'die' => '$judge{1}++; eval{$judge{r}++;die}; ', 'fix' => '$budge{1}++; eval{$budge{r}++;}; ', 'fatal' => '$mudge{{1,1}->{1}}++; eval{use warnings FATAL => qw(uninitialized); $mudge{{1,1}->{r}}++;}; ', 'olock' => '$fudge{1}++; ', 'odie' => '$judge{1}++; ', 'ofix' => '$budge{1}++; ', 'ofatal' => '$mudge{{1,1}->{1}}++; ', }); __END__