#!/usr/bin/perl -w use strict; use warnings; use Time::Local; my $range = 100000; my $ITERS = 30000; my (%HASH, $HASH_REF); for(my $iter = 1; $iter <= $ITERS; $iter++){ my $random_number = int(rand($range)); $HASH{$random_number} = 1; $HASH_REF->{$random_number} = 1; } my $TIME = time; for(my $iter = 1; $iter <= $ITERS; $iter++){ my $random_number = int(rand($range)); if( exists $HASH{$random_number} ){;} } my $ctime = time; my $exec_time = $ctime - $TIME; print 'Hash search :'."$exec_time\n"; $TIME = time; for(my $iter = 1; $iter <= $ITERS; $iter++){ my $random_number = int(rand($range)); if( exists {%{$HASH_REF}}->{$random_number} ){;} } $ctime = time; $exec_time = $ctime - $TIME; print 'Hashref search :'."$exec_time\n";