#!/usr/bin/perl use strict; use warnings; use Benchmark 'cmpthese'; my %dispatch = map {$_ => sub {my $res = "I found it"}} 1 .. ; $dispatch{default} = sub {my $res = "I did not find it"}; my @find; push @find, ; cmpthese(-10, { dispatch => sub { for (@find) { if (exists $dispatch{$_}) { $dispatch{$_}->(); } else { $dispatch{default}->(); } $dispatch{$_}->(); } }, if_else => sub { for (@find) { if ($_ eq '1') { my $res = "I found it"; } elsif($_ eq '') { my $res = "I found it"; } else { my $res = "I did not find it"; } } }, });