Listing 1.
 
Dan Schmidt
"Building a Better Hash"
The Perl Journal, Summer 1999
 
use RndHash1;
use Benchmark;

$rndhash1 = new RndHash1;

for $i (1..500) {$hash{$i} = $i}
for $i (1..500) {$rndhash1->insert($i, $i)}

$i = 1000;

timethese (5000, {
hash => sub {$hash{$i++}='a';
             @keys = keys %hash;
             delete $hash{$keys[rand @keys]};},
RndHash1 => sub {$rndhash1->insert ($i++, 'a');
             $rndhash1->delete ($rndhash1->rnd_key());},
             });