sub test3 { return if $_[0] > 9; my $a = $_[0]; if ($a==1) {} elsif ($a==2) {} elsif ($a==3) {} elsif ($a==4) {} elsif ($a==5) {} elsif ($a==6) {} elsif ($a==7) {} elsif ($a==8) {} elsif ($a==9) {} } #### C:\test>junk37 test1 took: 0.67200 seconds test2 took: 0.30307 seconds test3 took: 0.36421 seconds C:\test>junk37 test1 took: 0.66500 seconds test2 took: 0.30315 seconds test3 took: 0.29603 seconds C:\test>junk37 test1 took: 0.67800 seconds test2 took: 0.30240 seconds test3 took: 0.29488 seconds C:\test>junk37 test1 took: 0.66600 seconds test2 took: 0.30331 seconds test3 took: 0.29491 seconds C:\test>junk37 test1 took: 0.66900 seconds test2 took: 0.30349 seconds test3 took: 0.29475 seconds #### my @dispatch = ( sub {}, sub {}, sub {}, sub {}, sub {}, sub {}, sub {}, sub {}, sub {}, sub {}, ); sub test4 { return if $_[0] > 9; $dispatch[ $_[0] ]->( $_[0] ); }