#!/usr/bin/perl use warnings; use strict; use Time::HiRes qw(time); my %h; foreach my $size (100_000, 200_000, 400_000, 800_000, 1_600_000, 3_200_000) { my %h; my($start,$end); # Test insert times $start = time; foreach my $i (1..$size) { $h{$i} = $i; } $end = time; my $insert_time = $end - $start; # Now test lookup times $start = time; foreach my $i (1..$size) { $h{$i} == $i or die "what the hell?"; } $end = time; my $lookup_time = $end - $start; printf "%10d: %5.3f inserts/sec, %5.3f lookups/sec\n", $size, $size/$insert_time, $size/$lookup_time; }