use strict; use constant FALSE => 1==0; use Benchmark qw(:all); cmpthese(1E7, { 'return;' => sub { return }, 'return FALSE;' => sub { return FALSE }, 'return 1==0;' => sub { return 1==0 }, 'implicit' => sub { }, 'implicit FALSE'=> sub { FALSE }, 'implicit 1==0' => sub { 1==0 }, }); #### Rate return FALSE; implicit FALSE return 1==0; implicit return; implicit 1==0 return FALSE; 18281536/s -- -31% -54% -63% -80% -92% implicit FALSE 26666667/s 46% -- -33% -46% -71% -88% return 1==0; 40000000/s 119% 50% -- -19% -56% -82% implicit 49261084/s 169% 85% 23% -- -46% -77% return; 91743119/s 402% 244% 129% 86% -- -58% implicit 1==0 217391304/s 1089% 715% 443% 341% 137% --