Benchmark: timing 5000000 iterations of sub1, sub2, sub3...
sub1: 8 wallclock secs @ 664805.21/s (n=5000000)
sub2: 6 wallclock secs @ 988924.05/s (n=5000000)
sub3: 4 wallclock secs @ 1139731.02/s (n=5000000)
####
use Benchmark;
sub sub1(){
my $val = 3;
TTEST: {
if($val == 1){last TTEST;}
if($val == 2){last TTEST;}
if($val == 3){last TTEST;}
if($val == 4){last TTEST;}
}
}
sub sub2(){
my $val = 3;
TTEST: {
if($val == 1){last;}
if($val == 2){last;}
if($val == 3){last;}
if($val == 4){last;}
}
}
sub sub3(){
my $val = 3;
if($val == 1){}
if($val == 2){}
if($val == 3){}
if($val == 4){}
}
my $codehash = {'sub1' => \&sub1,'sub2' => \&sub2,'sub3' => \&sub3};
timethese(5000000, $codehash);
####
Benchmark: timing 5000000 iterations of sub1, sub2, sub3...
sub1: 8 wallclock secs ( 7.49 usr + 0.00 sys = 7.49 CPU) @ 667467.63/s (n=5000000)
sub2: 7 wallclock secs ( 7.27 usr + -0.01 sys = 7.26 CPU) @ 688800.11/s (n=5000000)
sub3: 5 wallclock secs ( 5.12 usr + 0.01 sys = 5.13 CPU) @ 975419.43/s (n=5000000)