Randal L. Schwartz wrote: >>>>>> "Peter" == Peter Farrar <[EMAIL PROTECTED]> writes: > >>> Replace >>> >>> EVIL: map { some;block;of;code;that;changes;$_ } @some_array; >>> >>> with >>> >>> GOOD: for (@some_array) { some;block;of;code;that;changes;$_ } > > > The foreach loop *will* be faster. >
for a small array, map is probably faster than foreach or for: #!/usr/bin/perl -w use strict; use Benchmark; timethese(999999,{_map=>sub{map{1} (1..10)}, _for=>sub{for(1..10){1}}, _foreach=>sub{foreach(1..10){1}}}); __END__ prints: Benchmark: timing 999999 iterations of _for, _foreach, _map... _for: 29 wallclock secs (22.80 usr + 0.02 sys = 22.82 CPU) @ 43821.17/s (n=999999) _foreach: 27 wallclock secs (23.01 usr + 0.04 sys = 23.05 CPU) @ 43383.90/s (n=999999) _map: 18 wallclock secs (18.39 usr + 0.01 sys = 18.40 CPU) @ 54347.77/s (n=999999) for a larger array(the following is done with array size of 100): Benchmark: timing 99999 iterations of _for, _foreach, _map... _for: 9 wallclock secs ( 8.15 usr + 0.00 sys = 8.15 CPU) @ 12269.82/s (n=99999) _foreach: 7 wallclock secs ( 8.16 usr + 0.00 sys = 8.16 CPU) @ 12254.78/s (n=99999) _map: 20 wallclock secs (14.77 usr + 0.00 sys = 14.77 CPU) @ 6770.41/s (n=99999) map is slow. david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]