in reply to RE:(2) Algorithm Efficiency (function overhead)
in thread Algorithm Efficiency vs. Specialized Hardware?

No, it's not the extra weight of the subroutine calls, although sub calls do cause more overhead. What's causing this is what I mentioned earlier: you have scoping problems. None of the code you're benchmarking is actually using a valid value for either %url or $now. So your results are completely bogus.

The valid results are those that use a properly scoped variable. Aighearach's code did this, though I'm not sure it did so intentionally.

You can accomplish this by declaring your vars as package globals:

use vars qw/$now %url/; $now = 8; %url = ( monday => { @{[map(($_,1), (1..1000))]} } );
This gives valid results.
Benchmark: timing 1000 iterations of Grep, Max, Ternary... Grep: 6 wallclock secs ( 5.49 usr + 0.00 sys = 5.49 CPU) Max: 5 wallclock secs ( 5.81 usr + 0.00 sys = 5.81 CPU) Ternary: 7 wallclock secs ( 6.42 usr + 0.00 sys = 6.42 CPU)