use constant foo => 'bar';
sub crack {
print &foo, $/;
}
crack(1, 2, 3);
####
use Benchmark qw(cmpthese);
cmpthese(-1, {
'ampersand' => 'use constant foo => 2; my $x = 0; for (1..10000) { $x += &foo } ',
'no_amp' => 'use constant foo => 2; my $x = 0; for (1..10000) { $x += foo } ',
});
__END__
Rate ampersand no_amp
ampersand 570/s -- -39%
no_amp 939/s 65% --
####
cmpthese(-1, {
'ampersand' => '
use constant foo => 2;
sub a { my $x = 0; for (1..10000) { $x += &foo } }
a(%ENV, %ENV, %ENV)
',
'no_amp' => '
use constant foo => 2;
sub a { my $x = 0; for (1..10000) { $x += foo } }
a(%ENV, %ENV, %ENV)
',
});
__END__
Rate ampersand no_amp
ampersand 330/s -- -61%
no_amp 849/s 157% --