open(IN, "bigfile.txt"); while(){ &big_sub1($_); } open(IN, "bigfile.txt"); while(){ &big_sub2($_); } #### open(IN, "bigfile.txt"); while(){ &big_sub1($_); &big_sub2($_); } #### 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; if($val == 1){} if($val == 2){} if($val == 3){} if($val == 4){} } sub sub3(){ my $val = 3; if($val == 1){} elsif($val == 2){} elsif($val == 3){} elsif($val == 4){} } my $codehash = {'sub1' => \&sub1,'sub2' => \&sub2,'sub3' => \&sub3}; timethese(5000000, $codehash); #### sub1: 13 wallclock secs (12.80 CPU) sub2: 8 wallclock secs (8.24 CPU) sub3: 6 wallclock secs (6.66 CPU)